2016-03-16 1 views
2

Я нашел множество сообщений о том, как люди вытаскивают слизень или идентификатор верхней категории сообщения WordPress, но мне нужно вытащить имя специально.Получить название верхней категории сообщения WordPress вместо slug

Вот текущая структура:

Spring 2016 (slug 2016-spring) 
    Feature (feature) 
    Giving Highlights (giving-highlights) 
    etc. 

код у меня работает отлично в вытягивать верхнего уровня пробкового/nicename (2016-весна), но мне нужно, чтобы вернуть имя/cat_name (весна 2016) вместо.

код я использую:

$category = get_the_category(); 
$cat_tree = get_category_parents($category[0]->term_id, FALSE, ':', TRUE); 
$top_cat = split(':',$cat_tree); 
$parent = $top_cat[0]; 
echo $parent; 

Что мне нужно изменить, чтобы быть потянув имя?

+0

Категория имеет родительский термин: https://codex.wordpress.org/Function_Reference/get_category – Gasim

+0

Я получаю это, но я думаю, что я не уверен, как использовать это в этом случае. – HawkeyeWeb

ответ

1

Вот решение, которое я использую в своей текущей среде:

$categories = get_the_category(); 
if (! empty($categories)) { 
    if (sizeOf($categories) > 1) { 
     $output = $categories[1]->name; 
    } elseif (sizeOf($categories) == 1) { 
     $output = $categories[0]->name; 
    } else { 
     $output = 'Please Assign A Category'; 
    } 
} 

У нас есть ситуации, когда некоторые сообщения используют только категорию верхнего уровня, в то время как другие используют более глубокую категорию внутри что для сортировки. Ваша ситуация, очевидно, изменится; если все ваши сообщения будут как минимум на 1 глубину внутри дерева, вы можете просто использовать линию $output=$categories[1]->name;, и все будет хорошо. Наверное, на всякий случай.

+0

Ах спасибо! Это именно то, что мне нужно. Наверное, немного громоздко, но да, это прекрасно работает. – HawkeyeWeb

1

Почему бы не попытаться просто потянуть название категории родителя, используя get_category()?

Попробуйте

$parent = $top_cat[0]; 
$pcat = get_category($parent) ; 

// Then 
echo $pcat->cat_name ; 
// OR 
echo $pcat->category_nicename ; 
+0

Добавил его, но он ничего не отображает для меня, когда я запускаю его. – HawkeyeWeb