Описание get_the_terms
— Filter
Хук get_the_terms позволяет изменить возвращаемые термины для определенного поста. Он срабатывает при вызове функции get_the_terms() и позволяет модифицировать массив терминов перед его возвращением, что полезно для кастомизации вывода таксономий
Примеры использования
Пример удаления термина из массива терминов:
add_filter('get_the_terms', function($terms, $post_id, $taxonomies) {
if ($taxonomies[0] === 'category') {
foreach ($terms as $key => $term) {
if ($term->slug === 'uncategorized') {
unset($terms[$key]);
}
}
}
return $terms;
}, 10, 3);
Этот пример удаляет термин ‘uncategorized’ из массива терминов для категорий поста
Пример добавления кастомного термина в массив терминов:
add_filter('get_the_terms', function($terms, $post_id, $taxonomies) {
if ($taxonomies[0] === 'post_tag') {
$terms[] = (object) ['term_id' => 999, 'name' => 'Кастомный тег', 'slug' => 'custom-tag'];
}
return $terms;
}, 10, 3);
В этом примере мы добавляем кастомный тег в массив терминов для постов
Пример фильтрации терминов по определенному условию:
add_filter('get_the_terms', function($terms, $post_id, $taxonomies) {
if ($taxonomies[0] === 'category') {
return array_filter($terms, function($term) {
return $term->count > 0;
});
}
return $terms;
}, 10, 3);
Этот пример фильтрует категории, оставляя только те, у которых есть посты
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить или модифицировать термины для поста перед их выводом
– Производительность
Использование этого хука не вызывает значительных проблем с производительностью, но следует избегать сложных операций с массивами
– Предупреждения
Убедитесь, что ваши изменения не нарушают логику работы с таксономиями, так как это может повлиять на отображение данных на сайте
Альтернативы
Тип: function
Функция для получения терминов без привязки к конкретному посту, что может быть полезно в других контекстах
Используйте ее, когда вам нужно работать с терминами вне контекста конкретного поста