• Приветствую Всех!
    Впервые столкнулся с такой проблемой:
    Предполагается, что на сайте будут рубрики и подрубрики.
    Тема для сайта готова, но она возвращает 404 в ответ на попытку открыть подкатегорию.
    Подкатегории не пусты.
    Вот так вывожу меню с подкатегориями.

    <?php
    	$mycat=get_query_var('cat');
    	$args = array(
    		'parent'                   => $mycat,
    		'hide_empty'               => 0,
    		'exclude'                  => 0,
    		'number'                   => '0',
    		'taxonomy'                 => 'category',
    		'pad_counts'               => true );
    
    	$postslist = get_posts('numberposts=20&orderby=post_date&category='.$mycat);
    	$catlist = get_categories($args);
    	$parent_id = get_categories('child_of='.$mycat.'&hide_empty=0');
    	echo "<h1>";
    	echo single_cat_title('Рубрика: ');
    	echo "</h1>";
    	echo "<ul class=\"ch_list_menu\">";
    	foreach($parent_id as $ch) {
    		echo "<li class=\"";
    		echo $ch->category_nicename;
    		echo "\"><a href=\"";
    		echo get_the_permalink($ch->cat_ID);
    		echo "\">";
    	    echo $ch->cat_name;
    	    echo "</a></li>";
    	  }
    	echo "</ul>";
    ?>

    Погуглил, понял, что не я один столкнулся с такой бедой, но решения не нашел.
    Подскажите плиз, как научить тему заходить в подкатегории.

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Может с макетом вывода ошиблись для категорий?

    Сами категории работают как часы…
    Подкатегории — не отображаются посылает на три веселых цифры.

    Макет вывода для категорий в первом сообщении (кусок кода из category.php)

    Если так попробовать?

    <?php
    $i=1;
    $cat = get_query_var('cat');
    $categories = get_categories('parent='.$cat.'');
    foreach ($categories as $category) { $i++; }
    if ($i > 1) {
    	echo "<ul>";
    	foreach ($categories as $category) { ?>
    		<li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
    	<?php }
    	echo "</ul>";
    } else {
    	$pcat = get_category(get_query_var('cat'),false);
    	$pcatid = $pcat->category_parent;
    	$categories = get_categories('parent='.$pcatid.'');
    	echo "<ul>";
    	foreach ($categories as $category) { ?>
    		<li<?php if ($category->term_id == $cat) { ?> class="active"<?php } ?>><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
    	<?php }
    	echo "</ul>";
    }
    ?>

    Неа, это вывод списка категорий отсортированных по алфавиту.
    Спасибо, но немного не то.

    Так переделайте под своё, если этот вариант работает.

    Нет, та же история…

    А может дело в разнице адресов Категорий(cat=13) и Подкатегорий(p=35)??

    Модератор Юрій

    (@yube)

    Подкатегорий(p=35)??

    p= — это запись (пост), а не подкатегория.

    Я не ошибся, в том — то и дело.

    Нашел причину!
    Вместо
    echo get_the_permalink($ch->cat_ID);

    Нужно было использовать
    echo get_category_link($ch->cat_ID);

    Поэтому у меня ссылки дочерних Категорий выводились как адрес Поста(p=35).
    Естессно, категория не открывалась и возвращала 404

    Решено, всем спасибо!

Просмотр 10 ответов — с 1 по 10 (всего 10)

Тема «Страница подкатегории» закрыта для новых ответов.