wp_get_post_tags()
— это удобная функция WordPress, которая позволяет получить список тегов, связанных с постом. Функция возвращает массив объектов терминов (тегов) или их идентификаторы в зависимости от переданных параметров.
wp_get_post_tags( int $post_id, array $args = array() ): array|WP_Error
Описание
Функция wp_get_post_tags()
служит для получения тегов, прикрепленных к посту. Она использует таксономию «post_tag», которая по умолчанию управляет тегами в WordPress. Для выполнения этой функции используются параметры, аналогичные тем, что применяются в wp_get_object_terms()
.
Результаты этой функции не кэшируются. Это означает, что каждый вызов функции делает запрос к базе данных, что может замедлять работу, особенно на крупных сайтах.
Параметры
- $post_id (int) (обязательный) — ID поста, для которого нужно получить теги. По умолчанию — 0.
- $args (array) (опциональный) — Параметры запроса тегов. Массив может включать параметры сортировки, фильтрации и формата вывода данных. По умолчанию — пустой массив.
Параметры $args
- orderby (строка) — Критерий сортировки:
count
— по количеству записейname
— по имени (по умолчанию)slug
— по слагуnone
— без сортировки
- order (строка) — Направление сортировки:
ASC
— по возрастанию (по умолчанию)DESC
— по убыванию
- fields (строка) — Определяет, какие данные возвращать:
all
— полный объект термина (по умолчанию)ids
— только ID теговnames
— только имена теговslugs
— только слаги тегов
Возвращаемые значения
- array — Массив объектов
WP_Term
, содержащих информацию о тегах поста. - WP_Error — Возвращается, если таксономия «post_tag» не существует.
Пример 1: Получение всех тегов поста
Этот пример показывает, как получить все теги поста с ID 456:
$post_tags = wp_get_post_tags( 456 );
foreach( $post_tags as $tag ) {
echo 'Название тега: ' . $tag->name . '<br>';
echo 'Слаг тега: ' . $tag->slug . '<br>';
}
Пример 2: Получение только ID тегов
Если вам нужно получить только идентификаторы тегов:
$tag_ids = wp_get_post_tags( 456, array( 'fields' => 'ids' ) );
print_r( $tag_ids );
/* Выведет:
Array
(
[0] => 10
[1] => 15
[2] => 20
)
*/
Пример 3: Создание ссылок на теги
Следующий пример демонстрирует, как вывести теги поста с активными ссылками:
$tags = wp_get_post_tags( 456 );
$html = '<div class="post-tags">';
foreach( $tags as $tag ) {
$tag_link = get_tag_link( $tag->term_id );
$html .= "<a href='{$tag_link}' title='{$tag->name}' class='{$tag->slug}'>";
$html .= "{$tag->name}</a> ";
}
$html .= '</div>';
echo $html;
Пример 4: Получение имен тегов
Чтобы получить только имена тегов поста:
$tag_names = wp_get_post_tags( 456, array( 'fields' => 'names' ) );
foreach( $tag_names as $name ) {
echo $name . '<br>';
}
/* Выведет:
Tag1<br>
Tag2<br>
Tag3<br>
*/
Пример 5: Сортировка тегов по имени в обратном порядке
Чтобы отсортировать теги по имени в обратном алфавитном порядке:
$sorted_tags = wp_get_post_tags( 456, array( 'fields' => 'names', 'order' => 'DESC' ) );
foreach( $sorted_tags as $name ) {
echo $name . '<br>';
}
/* Выведет, например:
TagZ<br>
TagY<br>
TagX<br>
*/
Заключение
Функция wp_get_post_tags()
предоставляет гибкий инструмент для работы с тегами постов в WordPress. Она позволяет получать как полные объекты тегов, так и их ID, имена или слаги, а также поддерживает различные параметры сортировки и фильтрации.