Вопрос или проблема
Я создал рецепт как пользовательский пост и типы как таксономию. В этой таксономии я создал овощи и фрукты как поля, и у меня есть 5 постов в каждом поле, но мне нужно отображать только овощи и фрукты на странице?
Запрос ниже это тот, который я использую в данный момент. Он отображает все записи.
<?php
$mypost = array( 'post_type' => 'recipe', );
$loop = new WP_Query( array( 'post_type' => 'recipe', 'posts_per_page' => 9 ) );
?>
Может кто-то помочь мне?
Вы можете использовать запрос таксономии, как этот:
$args = array(
'post_type' => 'recipe',
'tax_query' => array(
array(
'taxonomy' => 'types',
'field' => 'slug',
'terms' => array( 'vegetables', 'fruit' )
)
)
);
$query = new WP_Query( $args );
Ответ или решение
Чтобы эффективно отображать только таксономии на странице в контексте вашего сайта на WordPress, вам необходимо использовать WP_Query с правильными параметрами tax_query. Рассмотрим теорию, пример и применение на практике данного решения.
Теория
В WordPress таксономии служат для классификации содержимого сайта. Каждой пользовательской записи, будь то "recipe", можно назначить одну или несколько категорий или меток таксономий. Для фильтрации и отображения только нужных таксономий без вывода всех связанных постов мы используем WP_Query и определенные параметры для запроса таксономий. Важно правильно построить запрос, указав необходимую таксономию и терпимы, чтобы наша выборка отображала только нужные категории — например, "овощи" и "фрукты". Включив их в массив terms, мы обеспечиваем вывод персонализированной информации на странице.
Пример
Ваш текущий запрос, который вы сейчас используете, выводит все посты пользовательского типа "recipe", но не ограничивает вывод таксономией. Чтобы изменить это, обновите ваш запрос следующим образом:
$args = array(
'post_type' => 'recipe',
'tax_query' => array(
array(
'taxonomy' => 'types',
'field' => 'slug',
'terms' => array('vegetables', 'fruits'),
),
),
);
$query = new WP_Query($args);
Применение
Для правильного отображения только таксономий "овощи" и "фрукты", вставьте приведенный выше код в ваш шаблон страницы, где вы хотите вывести таксономии. При этом добавьте следующую логику для отображения заголовков или других данных, если это необходимо:
if ($query->have_posts()) {
echo '<ul>';
while ($query->have_posts()) {
$query->the_post();
// Отобразите здесь заголовки или другие элементы постов
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
echo 'Нет записей, соответствующих вашему запросу.';
}
wp_reset_postdata();
Этот подход обеспечит, чтобы на вашей странице отображались только выбранные таксономии. Помните, что таксономии управляются в панели администратора WordPress, и их корректная настройка является ключевой частью успешного внедрения данного кода. Убедитесь, что ваши таксономии созданы и назначены правильно в административной части вашего сайта.