wp_get_post_tags()

Извлекает теги для записи
Функция WordPress
INT 2.3.0
WordPress Icon

Описание функции

Функция wp_get_post_tags() используется для получения тегов, связанных с определенным постом в WordPress.

Она возвращает массив объектов WP_Term, представляющих теги, связанные с указанным постом. Если теги не найдены, функция возвращает пустой массив. Если таксономия ‘post_tag’ не существует, возвращается объект WP_Error.

Использование

wp_get_post_tags( int $post_id, array $args = array() ): array|WP_Error

Функция принимает два параметра:

  • $post_id (обязательный) — ID поста. По умолчанию равен 0.
  • $args (необязательный) — параметры запроса тегов. Поддерживаются все аргументы, принимаемые конструктором WP_Term_Query. Подробнее см. в документации по WP_Term_Query. По умолчанию равен пустому массиву.
  • $post_id (int) — ID поста. По умолчанию 0.
  • $args (array) — параметры запроса тегов. Поддерживаются все аргументы, принимаемые конструктором WP_Term_Query. Подробнее см. в документации по WP_Term_Query.

Функция возвращает массив объектов WP_Term в случае успеха или пустой массив, если теги не найдены. Если таксономия ‘post_tag’ не существует, возвращается объект WP_Error.


$args = array(
  'orderby' => 'name',
  'order' => 'ASC',
  'hide_empty' => true
);
$tags = wp_get_post_tags( $post_id, $args );
if ( ! empty( $tags ) ) {
  foreach ( $tags as $tag ) {
    echo '<a href="' . get_tag_link( $tag->term_id ) . '">' . $tag->name . '</a>';
  }
}

В этом примере мы получаем теги, связанные с определенным постом, и выводим их в виде ссылок на страницы тегов. Мы используем параметры запроса для сортировки тегов по имени в алфавитном порядке и скрываем пустые теги.

Примеры использования

Получение списка тегов для поста


$post_id = 123; // ID поста
$tags = wp_get_post_tags($post_id);
if (!empty($tags)) {
    foreach ($tags as $tag) {
        echo $tag->name; // Выводим название тега
    }
} else {
    echo 'Теги не найдены';
}

В данном примере мы получаем список тегов для поста с ID 123. Если теги найдены, то выводим их названия. Если теги не найдены, выводим сообщение «Теги не найдены».

Получение тегов с определенными параметрами


$post_id = 123; // ID поста
$args = array(
    'orderby' => 'count', // Сортировка по количеству объектов, связанных с тегом
    'order' => 'DESC', // Сортировка по убыванию
    'hide_empty' => false // Включение показа тегов, не привязанных к постам
);
$tags = wp_get_post_tags($post_id, $args);
if (!empty($tags)) {
    foreach ($tags as $tag) {
        echo $tag->name; // Выводим название тега
    }
} else {
    echo 'Теги не найдены';
}

В данном примере мы получаем список тегов для поста с ID 123 с определенными параметрами. Мы сортируем теги по количеству объектов, связанных с тегом, в порядке убывания. Также включаем показ тегов, не привязанных к постам. Если теги найдены, то выводим их названия. Если теги не найдены, выводим сообщение «Теги не найдены».

Сортировка тегов по имени


$post_id = 123; // ID поста
$args = array(
    'orderby' => 'name', // Сортировка по имени
    'order' => 'ASC' // Сортировка по возрастанию
);
$tags = wp_get_post_tags($post_id, $args);
if (!empty($tags)) {
    foreach ($tags as $tag) {
        echo $tag->name; // Выводим название тега
    }
} else {
    echo 'Теги не найдены';
}

В данном примере мы получаем список тегов для поста с ID 123 и сортируем их по имени в порядке возрастания. Если теги найдены, то выводим их названия. Если теги не найдены, выводим сообщение «Теги не найдены».

Получение только активных тегов


$post_id = 123; // ID поста
$args = array(
    'hide_empty' => true // Скрытие неактивных тегов
);
$tags = wp_get_post_tags($post_id, $args);
if (!empty($tags)) {
    foreach ($tags as $tag) {
        echo $tag->name; // Выводим название тега
    }
} else {
    echo 'Теги не найдены';
}

В данном примере мы получаем список активных тегов для поста с ID 123. С помощью параметра ‘hide_empty’ мы скрываем неактивные теги. Если активные теги найдены, то выводим их названия. Если активные теги не найдены, выводим сообщение «Теги не найдены».

Получение тегов с определенными метаданными


$post_id = 123; // ID поста
$args = array(
    'meta_key' => 'color', // Мета-ключ
    'meta_value' => 'red' // Мета-значение
);
$tags = wp_get_post_tags($post_id, $args);
if (!empty($tags)) {
    foreach ($tags as $tag) {
        echo $tag->name; // Выводим название тега
    }
} else {
    echo 'Теги не найдены';
}

В данном примере мы получаем список тегов для поста с ID 123, у которых есть мета-ключ ‘color’ и мета-значение ‘red’. Если такие теги найдены, то выводим их названия. Если такие теги не найдены, выводим сообщение «Теги не найдены».

Вопросы и ответы

Как получить все теги поста?

Функция wp_get_post_tags() используется для получения тегов, связанных с определенным постом.

Чтобы получить все теги поста, нужно передать ID поста в качестве аргумента функции:

$post_id = 123;
$tags = wp_get_post_tags($post_id);

Как получить количество тегов у поста?

Для получения количества тегов у поста можно использовать функцию count() для подсчета элементов в массиве, возвращаемом функцией wp_get_post_tags():

$post_id = 123;
$tags = wp_get_post_tags($post_id);
$tag_count = count($tags);

Как отсортировать теги поста по имени?

Для сортировки тегов поста по имени можно использовать аргумент orderby функции wp_get_post_tags(). По умолчанию, теги сортируются по имени в порядке возрастания (ASC).

Чтобы отсортировать теги по имени в порядке убывания (DESC), нужно передать значение 'name DESC' в аргумент orderby:

$post_id = 123;
$args = array(
    'orderby' => 'name DESC'
);
$tags = wp_get_post_tags($post_id, $args);

Как получить только имена тегов поста?

Для получения только имен тегов поста можно использовать функцию wp_get_post_tags() с указанием параметра fields со значением 'names'. Это вернет массив строк с именами тегов.


$post_id = 123; // ID поста
$tags = wp_get_post_tags( $post_id, array( 'fields' => 'names' ) );

Как получить только слаги тегов поста?

Для получения только слагов тегов поста можно использовать функцию wp_get_post_tags() с указанием параметра fields со значением 'slugs'. Это вернет массив строк с слагами тегов.


$post_id = 123; // ID поста
$tags = wp_get_post_tags( $post_id, array( 'fields' => 'slugs' ) );

Как получить только ID тегов поста?

Для получения только ID тегов поста можно использовать функцию wp_get_post_tags() с указанием параметра fields со значением 'ids'. Это вернет массив чисел с ID тегов.


$post_id = 123; // ID поста
$tags = wp_get_post_tags( $post_id, array( 'fields' => 'ids' ) );

Как получить только количество тегов поста?

Для получения только количества тегов поста можно использовать функцию wp_get_post_tags() с параметром count установленным в true. Это позволит получить только количество тегов без дополнительной информации.


$post_id = 123; // ID поста
$count = wp_get_post_tags( $post_id, array( 'count' => true ) );
echo 'Количество тегов: ' . $count;

Как получить только родительские теги поста?

Для получения только родительских тегов поста можно использовать функцию wp_get_post_tags() с параметром parent установленным в 0. Это позволит получить только теги, которые не имеют родительских тегов.


$post_id = 123; // ID поста
$parent_tags = wp_get_post_tags( $post_id, array( 'parent' => 0 ) );
foreach ( $parent_tags as $tag ) {
    echo $tag->name . ', ';
}

Как получить только дочерние теги поста?

Для получения только дочерних тегов поста можно использовать функцию wp_get_post_tags() с параметром child_of установленным в ID родительского тега. Это позволит получить только теги, которые являются дочерними для указанного родительского тега.


$post_id = 123; // ID поста
$parent_tag_id = 456; // ID родительского тега
$child_tags = wp_get_post_tags( $post_id, array( 'child_of' => $parent_tag_id ) );
foreach ( $child_tags as $tag ) {
    echo $tag->name . ', ';
}

Функция wp_get_post_tags() позволяет получить теги для указанного поста. С ее помощью можно получить только количество тегов, только родительские теги или только дочерние теги. Это удобно при работе с постами и тегами в WordPress.

Связанные элементы

  • Функция get_the_tags(): возвращает массив объектов WP_Term с тегами, связанными с текущим постом.
  • Функция wp_set_post_tags(): устанавливает теги для указанного поста.
  • Функция wp_get_post_terms(): возвращает термины, связанные с указанным постом и заданной таксономией.
  • Функция wp_get_post_categories(): возвращает категории, связанные с указанным постом.
  • Хук get_the_tags: позволяет изменить или расширить результаты функции get_the_tags.
  • Класс WP_Term_Query: используется для выполнения запросов к терминам (тегам) в WordPress.
Обсуждение