Вопрос или проблема
Я работаю над научным журналом, в котором издатель добавляет номера в таксономию “issue”, присваиваемую статьям. Мне нужно отобразить список записей, присвоенных только последнему номеру (недавно добавленному). Помогите, пожалуйста?
Обновление:
Я нашел код для получения последнего термина из таксономии:
$issue = get_terms('issue','orderby=none&order=DESC&number=1');
$current_issue = $issue[0]->slug;
Но я не смог найти способ использовать его для отображения списка записей, присвоенных только этому последнему термину. Есть предложения, пожалуйста?
Если вы измените параметр “number” на 2 в строке:
$terms = get_terms( 'issue', 'orderby=id&order=DESC&number=1' );
Как получить термин перед последним из пользовательской таксономии?
Ответ или решение
Чтобы получить последний термин из таксономии в вашем проекте, вы можете воспользоваться функцией get_terms()
, которую вы уже начали использовать. Давайте разложим этот процесс на шаги и добавим код для отображения публикаций, связанных только с последним термином.
Шаг 1: Получение последнего термина из таксономии
Вы правильно используете функцию get_terms()
, чтобы получить последний термин из вашей таксономии "issue". Однако для получения последних записей нам нужно изменить некоторые параметры. Вот корректный код:
$terms = get_terms(array(
'taxonomy' => 'issue',
'orderby' => 'id',
'order' => 'DESC',
'number' => 1
));
if (!empty($terms) && !is_wp_error($terms)) {
$current_issue_slug = $terms[0]->slug; // Получаем слаг последнего термина
}
Шаг 2: Получение публикаций, связанных с последним термином
Теперь, когда у вас есть слаг последнего термина, вы можете использовать его для получения публикаций. Здесь мы будем использовать WP_Query
для выборки публикаций, присоединенных к текущему термину.
$args = array(
'post_type' => 'your_post_type', // Замените 'your_post_type' на тип ваших публикаций
'tax_query' => array(
array(
'taxonomy' => 'issue',
'field' => 'slug',
'terms' => $current_issue_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();
Дополнительные советы
-
Настройка терминов: Имейте в виду, что код можно модифицировать для управления параметрами получения терминов: такие как
hide_empty
для исключения пустых терминов илиorderby
для сортировки по вашему усмотрению. -
Оптимизация производительности: Если у вас много публикаций, подумайте о кэшировании результатов запросов для улучшения производительности.
-
SEO: Для SEO оптимизации убедитесь, что URL вашего сайта является удобочитаемым и содержит ключевые слова, относящиеся к публикациям и вашей таксономии.
Следуя этим рекомендациям, вы сможете успешно вывести список публикаций, связанных с последним добавленным выпуском.