Как правильно вывести заголовок для каждого из двух типов постов в кастомной таксономии?
Создание заголовка для постов в 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` или в любой другой файл, где вы хотите вывести заголовки).
<blockquote><br/>
Я так понимаю, нужно сделать проверку...<br/>
</blockquote> <br/> Конечно нужно сделать проверку... Выводите просто заголовок таксономии только в том случае, если для этой таксономии есть посты <br/> <br/> <pre><code class="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></code></pre>