WordPress как на ладони
wordpress jino

wp_get_post_categories() WP 2.1.0

Получает список категорий (рубрик) поста (записи) в виде массива.

Функция является оберткой для функции wp_get_object_terms() и создана для тех, кто плохо разбирается в понятии "таксономии WordPress", но понимает что такое рубрики, что по сути является одним и тем же.

Работает на основе: wp_get_object_terms()
✈ 1 раз = 0.00111с = очень медленно | 50000 раз = 43.9с = очень медленно

Хуков нет.

Возвращает

Массив данных рубрик. По умолчанию массив содержащий ID категорий.

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

wp_get_post_categories( $post_id, $args );
$post_id(число) (обязательный)
ID поста, рубрики которого нужно получить.
$args(массив)
Аргументы получения рубрик.
По умолчанию: array('fields' => 'ids');

Аргументы параметра $args

orderby(строка)

По какому критерию сортировать результат. Может быть:

  • count - по количеству записей;

  • name - по имени. По умолчанию;

  • slug - по слагу;

  • none - выводить без сортировки.
    По умолчанию: 'name'
order(строка)
Направление сортировки. ASC — по порядку, DESC — в обратном порядке.
По умолчанию: 'ASC'
fields(строка)

Какие поля включать в результирующий массив. Может быть:

  • all - в результате мы получи массив объектов со всей информацией о каждом термине;
  • all_with_object_id - тоже что и all, плюс еще и ID терминов;
  • ids - получить только ID терминов;
  • names - получить только имена терминов.
    По умолчанию: 'all'

Примеры

#1 Демонстрация работы функции

Пример показывает, какой результат выводит базовое использование wp_get_post_categories():

$test = wp_get_post_categories( $post->ID );
print_r( $test );
/* Выведет:
Array
(
	[0] => 1
	[1] => 2
)
*/ 

echo $test[1];
// выведет: 2

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

$test = wp_get_post_categories( $post->ID, array('fields' => 'all') );
print_r( $test );
/* Выведет:
Array
(
	[0] => stdClass Object
		(
			[term_id] => 1
			[name] => Без рубрики
			[slug] => bez-rubriki
			[term_group] => 0
			[term_taxonomy_id] => 1
			[taxonomy] => category
			[description] => 
			[parent] => 0
			[count] => 2
			[filter] => raw
		)

	[1] => stdClass Object
		(
			[term_id] => 2
			[name] => Рубрика пробная
			[slug] => rubrika-probnaya
			[term_group] => 0
			[term_taxonomy_id] => 2
			[taxonomy] => category
			[description] => 
			[parent] => 0
			[count] => 1
			[filter] => raw
		)

)
*/

foreach( $test as $cat ){
	echo $cat->name .'<br>';
}
/* Выведет: 
Без рубрики<br>
Рубрика пробная<br>
*/

Код wp get post categories: wp-includes/post.php WP 4.8.2

<?php
function wp_get_post_categories( $post_id = 0, $args = array() ) {
	$post_id = (int) $post_id;

	$defaults = array('fields' => 'ids');
	$args = wp_parse_args( $args, $defaults );

	$cats = wp_get_object_terms($post_id, 'category', $args);
	return $cats;
}

Cвязанные функции

Из раздела: Для записей

wp_get_post_categories Комментариев нет

Здравствуйте, !

Ваш комментарий