Intereting Posts
Получение партнерских WP Показать партнерские купоны для работы с WooCommerce Smart Coupons Как я могу сортировать категории по ID is_admin () не работает при обновлении сообщения в панели администратора Что такое хороший плагин для создания шаблона, который можно использовать повторно для создания нескольких объектов на одной странице? wordpress multisite (основной сайт, чтобы стать дочерним и субсайтом, стал основным веб-сайтом). Использование jQuery в разработке виджета Гравитация формирует несколько сообщений, сгенерированных одной формой Как отключить автоматическое встраивание строки в нужную вам? разбиение на страницы данных с использованием SQL-запроса Список всех сообщений в таксономии Новое сообщение перезаписывает предыдущие Доступный URL-адрес изображения на основе идентификатора носителя? Безопасно ли передавать путь к директории plugins_url ()? Динамическая репликация пользовательского метабокса в настраиваемом типе сообщений Прокрутка страниц с помощью специального шаблона

Запрос сообщений по всему миру на основе пользовательской таксономии с ее собственной таксономиметрической таблицей

Я прошел процесс создания пользовательской таксономии + панель администратора для пользовательского типа сообщений на моем сайте. Эти таксономии хранят различные метаданные в таблице wp_taxonomymeta и используют get_metadata / set_metadata для получения и установки значений этих полей. Одно из полей этой таксономии – это флаг включен / отключен.

Я хотел бы глобально исключить сообщения, для которых установлен флаг отключен как true. Я подключаюсь к pre_get_posts , но я не могу понять, как изменить запрос, чтобы я мог извлекать данные в wp_taxonomymeta для использования в запросе, чтобы исключить сообщения, которые должны быть скрыты. Может ли кто-нибудь дать представление об этом? Я не мог найти много полезных советов по Google. Если требуется уточнение, пожалуйста, спросите, я сделаю все возможное, чтобы очистить все, что запутывает.

ИЗМЕНЕНИЕ ИЗ КОММЕНТАРИЙ

Я пытаюсь изменить основной запрос. Идея в конечном счете заключается в том, чтобы иметь возможность скрывать / показывать глобально по всему сайту на основе значения флага метаданных таксономии. Таким образом, у меня есть плагин, который реализует крюк pre_get_posts , но я не могу получить запрос с помощью настраиваемой таблицы (по крайней мере, в типичном стиле WordPress, raw SQL будет торт, но я хочу изменить основной запрос).

Существует не так много документации для работы с этими таблицами таксономии, так как кажется, что это спорный способ делать вещи в WordPress.

Для тех, кто сталкивается с проблемами в будущем, это то, что я сделал:

Я сделал свою функцию pre_get_posts которая запрашивает таксономию как обычно для тестирования, если идентификатор таксономии отсутствует в списке:

  $q->set( 'tax_query', array(array( 'taxonomy' => 'tax', 'field' => 'id', 'terms' => tax_get_inactive(), 'operator' => 'NOT IN' ))); 

Затем я выполнил свою функцию tax_get_inactive как показано выше, для запроса моей таблицы taxonomymeta и создания списка исключений. Не самый элегантный способ, но он работает, и список исключений можно легко кэшировать, если производительность имеет в виду.