Как вывести типы записей по определенной таксономии?

Для вывода типов записей по определенной таксономии в WordPress нужно использовать функцию WP_Query или get_posts. Оба варианта имеют преимущества и недостатки, но мы рассмотрим использование WP_Query, так как он предоставляет более гибкий и мощный функционал.

Первым шагом необходимо создать экземпляр класса WP_Query со следующими параметрами:

$args = array(
    'post_type' => 'YOUR_POST_TYPE', // Замените YOUR_POST_TYPE на тип записей, который вам необходимо вывести
    'tax_query' => array(
        array(
            'taxonomy' => 'YOUR_TAXONOMY', // Замените YOUR_TAXONOMY на таксономию, по которой нужно вывести записи
            'field' => 'slug',
            'terms' => 'YOUR_TERM', // Замените YOUR_TERM на значение термина таксономии
        ),
    ),
);
$query = new WP_Query( $args );

В данном коде мы используем параметры 'post_type' и 'tax_query'. В параметре 'post_type' мы указываем тип записей, которые нам нужно вывести. В параметре 'tax_query' мы указываем таксономию и соответствующий термин, по которому нужно вывести записи.

Следующим шагом необходимо выполнить цикл вывода записей, используя методы класса WP_Query. Мы можем использовать, например, методы have_posts() и the_post(), чтобы перебрать и отобразить найденные записи:

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Выводим содержимое записи
        the_title();
        the_content();
    }
    wp_reset_postdata();
} else {
    echo 'Записи не найдены.';
}

Внутри цикла мы можем использовать различные функции для вывода информации о записи, например, the_title() и the_content().

Не забудьте также вызвать метод wp_reset_postdata() после цикла, чтобы сбросить данные запроса.

В итоге, полный код будет выглядеть примерно так:

$args = array(
    'post_type' => 'YOUR_POST_TYPE',
    'tax_query' => array(
        array(
            'taxonomy' => 'YOUR_TAXONOMY',
            'field' => 'slug',
            'terms' => 'YOUR_TERM',
        ),
    ),
);
$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        the_title();
        the_content();
    }
    wp_reset_postdata();
} else {
    echo 'Записи не найдены.';
}

Не забудьте заменить 'YOUR_POST_TYPE', 'YOUR_TAXONOMY' и 'YOUR_TERM' на соответствующие значения вашего сайта.