Я создал собственный тип записи и прикрепил к нему несколько пользовательских полей. Теперь я хотел бы, чтобы поиск, который авторы могли выполнять на настраиваемом экране списка сообщений (в бэкэнде администратора), также выполнялся в мета-полях, а не только просматривался в заголовке и содержимом как обычно.
Где я могу подключиться и какой код я должен использовать?
Пример изображения
Стефано
custom-post-types
custom-field
search
Стефано
источник
источник
Ответы:
Я решил отфильтровать запрос, добавив объединение в таблицу postmeta и изменив предложение where. Советы по фильтрации предложения WHERE (часто требуется поиск и замена регулярных выражений) приведены здесь :
источник
Ответ Стефано великолепен, но в нем нет четкого предложения:
Добавьте приведенный выше код, обновите его, и он будет работать без дубликатов.
источник
Это будет работать,
источник
if ( $query->query['post_type'] != 'your_custom_post_type' ){ return; }
верхней части функции не позволит запускать ее при других поисках. Обратите внимание, что техника в этом ответе больше не ищет post_title и добавление этого обратно не является тривиальным.get_search_query()
которые выполняют дополнительные вызовыget_query_var( 's' )
. Так как для «s» задана пустая строка, в результатах поиска «» всегда будет пустое значение между кавычками. Есть ли у этого решения твик, который обходит это?Ответ 1: Добавьте этот код в файл функции, измените и добавьте имя столбца, которое вы использовали в своем типе записи
Ответ 2: рекомендуется использовать этот код в функциональном файле без каких-либо изменений
источник
Это не поиск, а какой-то «выбор» по отдельному значению.
В файле functions-iworks-posts-filter.zip у вас есть пример того, как добавить фильтр для обычной записи с помощью некоторого meta_key. Я думаю, что это легко конвертировать.
источник
Версия кода в паре ответов, которая изменяет параметр meta_query поискового WP_Query в pre_get_posts, больше не выполняет поиск в post_title. Добавление возможности поиска либо по заголовку записи, либо по мета-значениям ИЛИ не может быть выполнено напрямую в WP_Query без изменения SQL, к сожалению, так как этот вопрос детализируется: Использование мета-запроса ('meta_query') с поисковым запросом ('s')
Я объединил некоторые из методов здесь, чтобы получить рабочую версию, которая избегает preg_replaces и слишком много модификаций SQL (я хотел бы, чтобы этого можно было избежать полностью). Единственным недостатком является то, что после поиска текст субтитров в верхней части страницы гласит «Результаты поиска для« ». Я только что скрыл это с помощью CSS для пользовательского типа поста моего плагина.
источник