Intereting Posts
Использование богатого текстового редактора для описания категории? Использование xprofile_insert_field Подключить действие при удалении переходного процесса? Не могу заставить его работать! В WordPress я создаю таблицы для своего плагина или я создаю пользовательские типы сообщений для системы регистрации учащихся и классов? Содержимое открытого изображения «image» отображается пустым на отладчике и заполняется веб-источником Как добавить переводную строку для публикации даты Медиа-загрузчик не работает в настройках api Измените ссылку в get_terms, если в категории есть только одно сообщение Максимальный размер сообщения? breadcrumb должен показать все страницы и подстраницы Создание привязки из редактора Wysiwyg Непоследовательная информация в блоге Лучшая практика для обработки сервера get_post_meta с WP_query Общее количество W3 – кэширование браузера браузера, не работающее с полученными изображениями cdn

Пользовательский WP_Query нарушает поведение по умолчанию для просмотра правильного сообщения, связанного с налоговым сроком!

У меня есть обычная таксономия для пользовательских постов типа одинакового типа.

Я использовал стандартный цикл в моем шаблоне taxonomy-event_type.php до сих пор …

 if ( have_posts() ) : while ( have_posts() ) : the_post(); 

Это означало, что шаблон только показывал сообщения, связанные с текущим термином (категорией), в котором была поставлена ​​почта. Таким образом, в url/event_type/workshops только все сообщения, которые были настроены на «семинары» в бэкэнд.

Теперь я изменил этот стандартный цикл на настраиваемый цикл, где я передаю некоторые аргументы, чтобы сортировать сообщения по метазначению (дата события)

 $args = array( "post_type" => "wr_event", "meta_key" => "_wr_event_date", "orderby" => "meta_value_num", "order" => "ASC" //"terms" => ); $wr_events = new WP_Query( $args ); if ( $wr_events->have_posts() ) : while ( $wr_events->have_posts() ) : $wr_events->the_post(); 

Это работает отлично. Единственное, что. Это нарушает стандартное поведение для термина (категории), который я просматриваю сейчас.

Таким образом, с помощью этого настраиваемого цикла при просмотре url/event_type/workshops или url/event_type/lectures всегда появляются одни и те же сообщения! Как я могу снова просмотреть только сообщения, связанные с текущим термином «семинары» или «лекции»?

Спасибо за помощь!

редактировать:

если я сделаю …

 $current_cat = get_query_var( 'event_type' ); echo $current_cat; $args = array( … 

$current_cat содержит правильный термин (категория), в котором я сейчас. Проблема только в том, что сообщения в цикле всегда одинаковы. Как я могу фильтровать этот термин?

Второй запрос выполняет совершенно новый запрос и не имеет установленных терминов.

Кроме того, не так эффективно «переделывать» запрос. Вместо этого подключитесь к pre_get_posts и измените порядок:

 function change_order_for_events( $query ) { //Check if currenty query is the 'main query' and event type taxonomy being viewed if ( $query->is_main_query() && is_tax('event_type')) { $query->set( 'meta_key', '_wr_event_date' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'change_order_for_events' ); 

Для бонусных очков вам может потребоваться проверить, что параметры «orderby» и «order» не установлены. Таким образом, упорядочение по дате становится стандартным для событий на страницах таксономии типа события, но при необходимости может быть отменено.

Все условные условия доступны для вас.