get_the_category() WP 0.71

Отримує масив даних про категорії, що належать до зазначеної посади.

Функцію можна використовувати за межами Цикл WordPress, якщо вказати ID посту.

Результат роботи цієї функції кешується.

Працює на основі:
get_the_terms()
Основа для:
get_the_category_list()

Хуки з функції

Повертає

WP_Term[]. Масив _make_cat_compat() .

Використання

get_the_category($post_id);
$post_id
(число)
ID посту, категорії якого потрібно отримати.


За промовчанням $post->ID

Приклади

3

#1 Категорії посту за межами циклу

Приклад, як отримати категорії посту за межами Цикл WordPress:

global $post;

$categories = get_the_category( $post->ID );
var_dump($categories);

Дані, які містить кожен об’єкт категорії (всі властивості дивіться у класу _make_cat_compat() ):

$cat = get_the_category($post->ID);

// ID категорії
$cat->term_id

// Назва категорії
$cat->name

// Ярлик категорії
$cat->slug

// Опис категорії (задається на сторінці редагування категорії)
$cat->description

// ID батьківської категорії
$cat->parent

// Кількість записів у категорії
$cat->count
1

#2 Отримання даних першої категорії з масиву

Показати лише ім’я першої категорії. .

У цьому прикладі отримуємо перший елемент масиву ([0]) $categories.

$categories = get_the_category();

if ( ! empty( $categories ) ) {
	echo esc_html( $categories[0]->name );
}

Зробіть першу категорію посиланням на сторінку категорії: .

$categories = get_the_category();

if ( ! empty( $categories ) ) {
	echo '<a href="' . esc_url( get_category_link( $categories[0]->term_id ) ) . '">' . esc_html( $categories[0]->name ) . '</a>';
}
0

#3 Виведемо картинку для кожної категорії

Цей приклад показує як можна створити картинку кожної категорії, в атрибуті alt буде вказано назву категорії. Картинки повинні мати такі ж назви, як і ID категорій (12.jpg) і лежати в корені сайту в папці images. Код потрібно використовувати всередині циклу:

foreach( get_the_category() as $category ){
	echo '<img src="http://example.com/images/' . $category->term_id . '.jpg" alt="' . $category->name . '" />';
}
0

#4 Назва першої категорії

Показати назву лише першої категорії (якщо пост відноситься до кількох категорій):

$category = get_the_category();
echo $category[0]->name;
0

#5 Виведення посилань на рубрики посту

foreach ( get_the_category() as $category ) {
	printf(
		'<a href="%s" class="link link_text">%s</a>', // Шаблон виведення посилання
		esc_url( get_category_link( $category ) ), // Посилання на рубрику
		esc_html($category->name) // Назва рубрики
	);
}
0

#6 Виведення посилань на рубрики посту через кому

$links = array_map( function ( $category ) {
	return sprintf(
		'<a href="%s" class="link link_text">%s</a>', // Шаблон виведення посилання
		esc_url( get_category_link( $category ) ), // Посилання на рубрику
		esc_html($category->name) // Назва рубрики
	);
}, get_the_category());

echo implode(', ', $links);
0

#7 Приклад того, що повертає функція

$categories = get_the_category();

print_r ($ categories);

Result:

Array
(
	[0] => WP_Term Object
		(
			[term_id] => 7
			[name] => Codex
			[slug] => codex
			[term_group] => 0
			[term_taxonomy_id] => 7
			[taxonomy] => category
			[description] =>
			[parent] => 3
			[count] => 17
			[filter] => raw
			[term_order] => 1
			[cat_ID] => 7
			[category_count] => 17
			[category_description] =>
			[cat_name] => Codex
			[category_nicename] => codex
			[category_parent] => 3
		)

	[1] => WP_Term Object
		(
			[term_id] => 4
			[name] => Usefulness
			[slug] => usefulness
			[term_group] => 0
			[term_taxonomy_id] => 4
			[taxonomy] => category
			[description] =>
			[parent] => 3
			[count] => 7
			[filter] => raw
			[term_order] => 2
			[cat_ID] => 4
			[category_count] => 7
			[category_description] =>
			[cat_name] => Usefulness
			[category_nicename] => usefulness
			[category_parent] => 3
		)

)

список змін

З версії 0.71Введено.

Код get_the_category() WP 6.0.2

function get_the_category( $post_id = false ) {
	$categories = get_the_terms( $post_id, 'category' );
	if ( ! $categories || is_wp_error( $categories ) ) {
		$categories = array();
	}

	$categories = array_values( $categories );

	foreach ( array_keys( $categories ) as $key ) {
		_make_cat_compat( $categories[ $key ] );
	}

	/**
	 * Filters array of categories для повернення до post.
	 *
	 * @ Since 3.1.0
	 * @since 4.4.0 Added `$post_id` parameter.
	 *
	 * @param WP_Term[] $categories Залишити категорії для повернення до post.
	 * @param int | false $ post_id ID of the post.
	 */
	return apply_filters( 'get_the_categories', $categories, $post_id );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *