Как получить ID категории в single.php в WordPress?

22 дек. 2012 г., 13:24:07
Просмотры: 32.4K
Голосов: 2

Мне нужно получить id категории в single.php. Я пробовал это:
$cat_ID = get_query_var('cat');

Это не сработало. Что следует использовать вместо этого?

Вы можете использовать один из следующих методов:

1. Использование функции get_the_category():

$categories = get_the_category();
$category_id = $categories[0]->term_id; // получаем ID первой категории

2. Или с помощью wp_get_post_categories():

$post_categories = wp_get_post_categories(get_the_ID());
$cat_id = $post_categories[0]; // получаем ID первой категории

Примечание: Если пост принадлежит нескольким категориям, эти методы вернут ID первой категории. Для получения всех категорий, вы можете перебрать массив.

0
Все ответы на вопрос 2
0

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

Получение списка категорий для записи.

<?php wp_get_post_categories( $post_id, $args ) ?>

Обратите внимание, что функция возвращает массив (идентификаторов категорий), даже если у записи только одна категория.

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

$post_categories = wp_get_post_categories( $post_id );
$cats = array();

foreach($post_categories as $c){
    $cat = get_category( $c );
    $cats[] = array( 'name' => $cat->name, 'slug' => $cat->slug );
}

Ссылка: http://codex.wordpress.org/Function_Reference/wp_get_post_categories

Другой вариант:

Использование get_the_terms();

<?php
    $id = get_the_id();
    $terms = get_the_terms( $id, 'category' );
    // print_r( $terms );
    foreach($terms as $term) {
        echo $term->cat_ID;   
    }
?>
22 дек. 2012 г. 14:39:08
1

Вы можете просто использовать

$categories = get_the_category();

для получения назначенных категорий.

22 дек. 2012 г. 13:40:39
Комментарии

ссылка http://codex.wordpress.org/Function_Reference/get_the_category

Michael Michael
22 дек. 2012 г. 13:44:08