Вывод подкатегорий

Второй день мучаюсь над проблемой, суть такова:
Есть 12 основных рубрик в каждой из которых есть подрубрики.
Если открываем Рубрику-1, то в сайдбаре должно отображаться:

  • На главную
  • Рубрика-1

    • Подрубрика-1
    • Подрубрика-2

Если открываем Рубрику-2:

  • На главную
  • Рубрика-2

    • Подрубрика-1
    • Подрубрика-2

<ul>
<li>
<a href="<?php bloginfo(‘url’); ?>">На главную</a>
</li>
<li>
<a href=" id родительской рубрики ">Рубрика-1</a>
</li>
<?php wp_list_categories(‘title_li=0&child_of=’. id родительской рубрики ); ?>
</ul>

По хорошему нужно узнать id родительской рубрики (одной из 12-ти, тоесть при клике на Подрубрику-1 она не должна быть родителем).

Использовал такой код:

<?php
if (is_category()) {
$mgCurParent = &get_term($cat,'category');
if ($mgCurParent->parent == 0) {
$mgGlobalParent = $cat;
} else {
$mgCurCatID = $cat;
do {
$mgCurParent = &get_term($mgCurCatID,'category');
$mgCurCatID = $mgCurParent->parent;
$mgGlobalParent = $mgCurParent->term_id;
} while ($mgCurParent->parent > 0);
}
}
?>

$mgGlobalParent и есть id родителя, но если сделать клик на подрубрике то $mgGlobalParent=id подрубрики…

Всем спасибо, решил сам.
Вот код, может еще кому пригодится (это содержимое файла sidebar.php):

<?php
    if (is_category()) {
        $mgCurParent = &get_term($cat,'category');
        if ($mgCurParent->parent == 0) {
            $mgGlobalParent = $cat;
        } 
        else {
            $mgCurCatID = $cat;
            do {
                $mgCurParent = &get_term($mgCurCatID,'category');
                $mgCurCatID = $mgCurParent->parent;
                $mgGlobalParent = $mgCurParent->term_id;
            } 
            while ($mgCurParent->parent > 0);
        }
    }
?>

<ul>
    <li><a href="<?php bloginfo('url'); ?>">На главную</a></li>
    <li><a href="<?php bloginfo('url'); ?>/?cat=<?php echo($mgGlobalParent); ?>"><?php echo(get_cat_name($mgGlobalParent)); ?></a></li>
    <?php if (count(get_categories('child_of='.$mgGlobalParent))) {wp_list_categories('orderby=id&title_li=&child_of='.$mgGlobalParent);}    ?>
</ul>

Здравствуйте, помогите почти с подобной ситуацией, мой код работает прекрасно но необходимо, чтобы как в предыдущем посте отображалась вверху ссылка на родительскую рубрику. Как и что нужно написать в моем коде???
Код: <?php
if ( is_category() ) {
$cur_category = get_term_by( ‘slug’, get_query_var(‘category_name’),
‘category’);
$categories = get_categories( array( ‘parent’ =>
$cur_category->term_id ) );
if (!$categories) $categories = get_categories( array( ‘parent’ =>
$cur_category->parent ) );
foreach ($categories as $category) {
$res = ‘<ul><li><a href="’.get_category_link(
$category->term_id ).’">’;
$res .= $category->cat_name;
$res .= ‘</a></li></ul>’;
echo $res;
}
}
if ( is_single() ) {
$allowed_cats = array( ’14’, ’15’, ’41’, ’42’, ’48’, ’10’, ’19’, ’22’, ’20’, ’23’, ’12’, ’13’, ’17’, ’45’, ’21’ , ’30’, ’35’, ’37’, ’40’);
$post_cat = wp_get_post_categories($GLOBALS[‘post’]->ID);
if ( count($post_cat) == 1 && in_array( $post_cat[0], $allowed_cats ) )
{
$cur_category = get_term_by( ‘id’, $post_cat[0], ‘category’);
$categories = get_categories( array( ‘parent’ =>
$cur_category->term_id ) );
if (!$categories) $categories = get_categories( array( ‘parent’ =>
$cur_category->parent ) );
foreach ($categories as $category) {
$res = ‘<ul><li><a href="’.get_category_link(
$category->term_id ).’">’;
$res .= $category->cat_name;
$res .= ‘</a></li></ul>’;
echo $res;
}
}
}
?>

Anonymous
Отправить
Ответ на: