Как правильно вывести заголовок для каждого из двух типов постов в кастомной таксономии?
Создание заголовка для постов в WordPress и вывод заголовков для различных типов постов в кастомной таксономии — это довольно простые процессы. Вот шаги, которые помогут вам в этом: ### 1. Создание заголовка для постов в WordPress Когда вы создаете новый пост в WordPress, заголовок задается в специальном поле в редакторе постов. Заголовок является важной частью SEO и помогает пользователям понять содержание записи. ### 2. Вывод заголовка для кастомных постов в таксономии Для того чтобы вывести заголовки для различных типов постов в кастомной таксономии, вам нужно использовать WP_Query, чтобы получить нужные посты, и затем вывести их заголовки. Вот пример кода, который демонстрирует, как это можно сделать: ```php <?php // Определяем параметры запроса $args = array( 'post_type' => array('custom_post_type1', 'custom_post_type2'), // ваши кастомные типы постов 'tax_query' => array( array( 'taxonomy' => 'your_custom_taxonomy', // ваша кастомная таксономия 'field' => 'slug', 'terms' => 'your_term_slug', // ваш термин ), ), ); // Запрос постов $query = new WP_Query($args); // Проверка, есть ли посты if ($query->have_posts()) { echo '<ul>'; while ($query->have_posts()) { $query->the_post(); // Выводим заголовок с ссылкой на пост echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>'; } echo '</ul>'; } else { echo 'Посты не найдены.'; } // Восстановить глобальную переменную поста wp_reset_postdata(); ?> ``` ### Объяснение кода: - **post_type**: В этом массиве указываются все кастомные типы постов, для которых мы хотим извлечь заголовки. - **tax_query**: Здесь мы определяем параметры для выборки постов в зависимости от кастомной таксономии и термина. - **WP_Query**: Этот класс позволяет нам делать запросы к базе данных и извлекать посты. - **have_posts() и the_post()**: Эти методы используются для циклического перебора постов. - **get_permalink() и get_the_title()**: Эти функции используются для получения ссылки и заголовка поста соответственно. Этот код нужно добавить в подходящее место вашей темы WordPress, например, в файл шаблона (например, в `page.php`, `single.php` или в любой другой файл, где вы хотите вывести заголовки).
Я так понимаю, нужно сделать проверку...
Конечно нужно сделать проверку... Выводите просто заголовок таксономии только в том случае, если для этой таксономии есть посты
<section id="our-media"> <div class="container"> <?php $cats = get_terms(array('taxonomy' => 'headline', 'post_type' => 'our-media')); foreach ($cats as $cat) { $query = new WP_Query(array( 'post_type' => 'our-media', 'tax_query' => array( array( 'taxonomy' => 'headline', 'field' => 'term_id', 'terms' => $cat->term_id, ), ), 'posts_per_page' => -1, 'order' => 'ASC', )); if ($query->have_posts()) { ?> <h3><?php echo $cat->name; ?></h3> <ul> <?php while ($query->have_posts()) { $query->the_post(); ?> <li> <!-- код поста --> </li> <?php } ?> </ul> <?php } wp_reset_postdata(); } ?> </div> </section> <section id="units"> <div class="container"> <?php $cats = get_terms(array('taxonomy' => 'headline', 'post_type' => 'units')); foreach ($cats as $cat) { $query = new WP_Query(array( 'post_type' => 'units', 'tax_query' => array( array( 'taxonomy' => 'headline', 'field' => 'term_id', 'terms' => $cat->term_id, ), ), 'posts_per_page' => -1, 'order' => 'ASC', )); if ($query->have_posts()) { ?> <h3><?php echo $cat->name; ?></h3> <p><?php echo $cat->description; ?></p> <ul> <?php while ($query->have_posts()) { $query->the_post(); ?> <li> <!-- код поста --> </li> <?php } ?> </ul> <?php } wp_reset_postdata(); } ?> </div> </section>