get_the_category_list() │ WP 1.5.1
Получает список категорий поста. Список получается в виде ссылок на категории.
Нужно применять внутри Цикла WordPress или использовать параметр post_id (см. описание).
Чтобы получить список элементов произвольной таксономии, можно использовать аналогичную функцию get_the_term_list() .
Возвращает
Строку
. HTML код ссылок на категорию(и).
Использование
$cat_list = get_the_category_list( $separator, $parents, $post_id );
$separator(строка)
Разделитель между ссылками.
По умолчанию: выведет ссылки в списке <ul>
$parents(строка)
Как показывать ссылки, если текущая категория является дочерней. Может принимать:
По умолчанию: просто выводятся категории, к которым принадлежит пост (связь не учитывается)
$post_id(число)
ID поста, категории которого нужно вывести. Добавлен в версии 2.5.
По умолчанию: $post->ID (текущий пост)
Примеры
#1 Список категорий текущего поста разделенных запятой:
Код нужно использовать в цикле WP:
$cats = get_the_category_list( ', ' );
echo '<p>Категории: '. $cats .'</p>';
Получим:
<p>Категории:
<a href="/url" rel="nofollow ugc">WordPress</a>,
<a href="/url" rel="nofollow ugc">Computers</a>,
<a href="/url" rel="nofollow ugc">Blogging</a>
</p>
Добавить свой пример
Заметки
Список изменений
Код get_the_category_list() get the category list
WP 6.7.1
function get_the_category_list( $separator = '', $parents = '', $post_id = false ) {
global $wp_rewrite;
if ( ! is_object_in_taxonomy( get_post_type( $post_id ), 'category' ) ) {
/** This filter is documented in wp-includes/category-template.php */
return apply_filters( 'the_category', '', $separator, $parents );
}
/**
* Filters the categories before building the category list.
*
* @since 4.4.0
*
* @param WP_Term[] $categories An array of the post's categories.
* @param int|false $post_id ID of the post to retrieve categories for.
* When `false`, defaults to the current post in the loop.
*/
$categories = apply_filters( 'the_category_list', get_the_category( $post_id ), $post_id );
if ( empty( $categories ) ) {
/** This filter is documented in wp-includes/category-template.php */
return apply_filters( 'the_category', __( 'Uncategorized' ), $separator, $parents );
}
$rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"';
$thelist = '';
if ( '' === $separator ) {
$thelist .= '<ul class="post-categories">';
foreach ( $categories as $category ) {
$thelist .= "\n\t<li>";
switch ( strtolower( $parents ) ) {
case 'multiple':
if ( $category->parent ) {
$thelist .= get_category_parents( $category->parent, true, $separator );
}
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a></li>';
break;
case 'single':
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>';
if ( $category->parent ) {
$thelist .= get_category_parents( $category->parent, false, $separator );
}
$thelist .= $category->name . '</a></li>';
break;
case '':
default:
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a></li>';
}
}
$thelist .= '</ul>';
} else {
$i = 0;
foreach ( $categories as $category ) {
if ( 0 < $i ) {
$thelist .= $separator;
}
switch ( strtolower( $parents ) ) {
case 'multiple':
if ( $category->parent ) {
$thelist .= get_category_parents( $category->parent, true, $separator );
}
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a>';
break;
case 'single':
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>';
if ( $category->parent ) {
$thelist .= get_category_parents( $category->parent, false, $separator );
}
$thelist .= "$category->name</a>";
break;
case '':
default:
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a>';
}
++$i;
}
}
/**
* Filters the category or list of categories.
*
* @since 1.2.0
*
* @param string $thelist List of categories for the current post.
* @param string $separator Separator used between the categories.
* @param string $parents How to display the category parents. Accepts 'multiple',
* 'single', or empty.
*/
return apply_filters( 'the_category', $thelist, $separator, $parents );
}
Cвязанные функции