У меня есть две пользовательские таксономии, примененные к двум пользовательским типам записей. список терминов на боковой панели просто отлично и будет перечислять все сообщения, связанные с ним. Однако, если вы выполните поиск по одному из конкретных терминов, сообщение с этим термином не появится.
Пример: http://dev.andrewnorcross.com/das/all-case-studies/ Поиск по термину "PQRI"
Я ничего не получаю. Любые идеи? Я пытался использовать различные поисковые плагины, но они либо нарушают мои пользовательские параметры поиска, либо просто не работают.
custom-post-types
custom-taxonomy
search
Norcross
источник
источник
Ответы:
Я бы тоже порекомендовал плагин Search Everything , но если вы хотите реализовать это с помощью функции поиска WP, вот код, который я использую в своей теме Atom:
Он основан на плагине Tag-Search: http://projects.jesseheap.com/all-projects/wordpress-plugin-tag-search-in-wordpress-23
источник
is_search()
или другие вызовы метода WP_Query (is_search()
is_home()
и т. Д.) Всегда должны вызываться непосредственно в экземпляре запроса (например,$query->is_search()
предполагая, что имя переменной экземпляра находится$query
в сигнатуре обратного вызова), а не в функции шаблона, которая всегда будет ссылаться на основной запрос. , а не запрос, для которого работает фильтр.Это стандартный поиск WordPress? Потому что это не включает в поиск таксономии (даже не стандартные, такие как категории и теги). Код ищет в
post_title
иpost_content
, но если вы хотите включить что-то еще, вам нужно подключиться кposts_search
фильтру.источник
Я попробовал решение Onetrickpony выше /wordpress//a/5404/37612 , и это здорово, но я нашел там одну проблему, которая не работала для меня, и я бы сделал одну небольшую модификацию:
если в таксономии есть специальные символы, например, с немецкими "Umlauts" (ö, ä, ü) и кто-то ищет oe, ae, ue, insteda использования специального символа - необходимо добавить поиск в слаг таксономии -
OR t.slug LIKE '%".get_search_query()."%'
если вы ищете комбинацию поискового запроса и фильтра таксономии - это также отлично работает
Но проблема в том, что когда вы пытаетесь использовать только фильтр таксономии - ловушка поиска добавляет пустую строку к запросу, если текст не ищется, и по этой причине вы получаете ВСЕ посты в результате, а не только посты из фильтрованная таксономия. Простое утверждение IF решает проблему. Таким образом, весь измененный код будет таким (прекрасно работает для меня!)
источник
У меня такой же уровень информации, как у Яна. Я знаю, что можно расширять поиск с помощью плагинов.
Вероятно, Search Everything (Wordpress Plugin) - это то, что вы ищете. Согласно списку возможностей, теперь он поддерживает пользовательские таксономии.
источник
Я нашел ответ от onetrickpony отличным, но он рассматривает любой поиск как один термин, а также не будет иметь дело с поисковой фразой, заключенной в кавычки. Я
atom_search_where
немного изменил его код (в частности, функцию), чтобы справиться с этими двумя ситуациями. Вот моя модифицированная версия его кода:источник
У меня та же проблема, что и с плагином корзины WooCommerce. Мои результаты поиска не включают пользовательский термин таксономии 'product_tag', поскольку он не является стандартным тегом записи. Я нашел решение в этом другом потоке StackOverflow по этому вопросу:
/programming/13491828/how-to-amend-wordpress-search-so-it-queries-taxonomy-terms-and-category-terms
Пример кода от tkelly сработал для меня, когда я заменил термин
author
в своем примереproduct_tag
согласно нашим потребностям в плагинах корзины.источник