Изменить основной цикл на странице архива таксономии


Есть ли способ изменить основной цикл в одном шаблоне таксономии, но оставить его нетронутым в любом другом шаблоне?

В этом случае у меня есть пользовательский тип записи "События", который, в свою очередь, имеет пользовательскую таксономию "Регион". Что я хочу сделать, так это вместо того, чтобы перечислять каждое пользовательское "Событие" в хронологическом порядке по дате публикации, я хочу упорядочить его по пользовательскому мета-значению (в данном случае event_date).

Я хочу сделать это только в своем шаблоне taxonomy-region.php и оставьте любой другой экземпляр основного цикла нетронутым.

Author: Dean Elliott, 2014-08-03

1 answers

Вы могли бы захватить $query непосредственно перед отправкой сообщений.

function wpdev_156674_pre_get_posts( $query ) {

    if (
        $query->is_main_query()
        && $query->is_tax( 'region' )
    ) {
        // Manipulate $query here, for instance like so
        $query->set( 'orderby', 'meta_value_num' );
        $query->set( 'meta_key', 'event_date' );
        $query->set( 'order', 'DESC' );
    }
}
add_action( 'pre_get_posts', 'wpdev_156674_pre_get_posts' );

Ссылки:

 2
Author: tfrommen, 2014-08-03 16:47:06