Функция wp_get_post_tags()
также как и get_the_tags() возвращает все метки поста. Работает на основе функции wp_get_post_terms(
).
wp_get_post_tags( $post_id, $args = array() )
- $post_id
- (число) ID поста. По умолчанию 0.
- $args
- (массив) Дополнительный параметр. Про возможные аргументы можете почитать в статье про get_terms().
Возвращает либо массив объектов меток текущего поста, либо ошибку WP_Error, либо пустой массив, если меток не найдено.
Пример
Выведем функцию без параметра $args
. Также не забываем, что функция возвращает массив объектов WP_Term
, поэтому используем внутри цикла foreach.
$post_id = get_the_ID(); if( $post_tags = wp_get_post_tags( $post_id ) ) { foreach ( $post_tags as $post_tag ) { echo '<pre>'; //используем, чтобы результат print_r имел читабельный вид print_r( $post_tag); //распечатаем результат, чтобы наглядно видеть, что у нас внутри объекта } }
В итоге мы получим следующую информацию:
WP_Term Object ( [term_id] => 777 [name] => приключения [slug] => adventure [term_group] => 0 [term_taxonomy_id] => 777 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 3 [filter] => raw )
Теперь мы можем легко вывести любое представленное значение объекта:
echo $post_tag->name // получим имя метки echo $post_tag->slug // ярлык метки echo $post_tag->count // количество постов с данной меткой
Но если вам нужно получить только одно значение, например только наименование метки, то можно легко облегчить себе задачу, используя параметр $args
. Вот пример:
$post_id = get_the_ID(); $post_tags = wp_get_post_tags( $post_id, array( 'fields' => 'names' ) ); //получим массив с наименованием меток - Array ( [0] => путешествия [1] => море [2] => пляж ) foreach ( $post_tags as $post_tag ) { //не забываем про цикл echo $post_tag . '<br>'; //распечатаем результат } // В итоге получим // путешествия // море // пляж
Больше примеров с аргументами по ссылке. Там используется функция get_terms(), но параметры массива $args
для обеих функций одинаковые.
Источник: misha.blog