Atrax
(@atrax)
Ethical engineer
По теме:
http://codex.wordpress.org/Function_Reference/get_category
Там описано, как можно получить идентификатор category_parent
А по нему — сделать еще один запрос и получить родительскую рубрику.
Как вариант.
Флейм вычистил
Спасибо Atrax, принцип понял, буду пробовать.
Сделал вот так:
<?php foreach((get_the_category()) as $childcat) { $parentcat = $childcat->category_parent; if( $parentcat != 0 ) echo '<a href="' . get_category_link($parentcat) .'">' .get_cat_name($parentcat) .'</a>'; else echo '<a href="' . get_category_link($childcat) .'">' .$childcat->cat_name .'</a>'; } ?>
Но это дало мне только «—под рубрику2» и как то неправильно выполняется в цикле.
function get_category_parents( $id, $link = false, $separator = ‘/’, $nicename = false, $visited = array() )
* @param int $id Category ID.
* @param bool $link Optional, default is false. Whether to format with link.
* @param string $separator Optional, default is ‘/’. How to separate categories.
* @param bool $nicename Optional, default is false. Whether to use nice name for display.
* @param array $visited Optional. Already linked to categories to prevent duplicates.
* @return string
я использую вот так :
echo preg_replace('~ / $~','', get_category_parents($child_of, true, ' / ', 0, array(34,45) ) );
preg_replace тут убирает последний разделитель
если ты говориш что отмечаеш только полседнюю рубрику тогда можно так
$arr = get_the_category( $id );
$child_of = array_pop($arr);
echo preg_replace('~ / $~','', get_category_parents($child_of, true, ' / ') );
вот проверил код все работает
$arr = get_the_category( $id );
$child_of = array_shift($arr);
echo preg_replace('~ / $~','', get_category_parents($child_of->term_id, true, ' / ') );
То что надо. Спасибо stur.