Поддержка → Проблемы и решения → Как отобразить дочерние рубрики на страницах рубрик?
Как отобразить дочерние рубрики на страницах рубрик?
-
Подсказали такую функцию которая убирает посты доречних рубрик.
function no_children( $query ) { if ( ! is_admin() && $query->is_main_query() && $query->is_category() ) $query->set( 'category__in', array( get_queried_object_id() ) ); } add_action( 'pre_get_posts', 'no_children' );
А как при этом добавить дочерние рубрики?
-
вот тут потом еще по месту подредактируйте
<style> .nawi li { width: 221px; background: #245594; margin: 2px; padding: 2px 6px; list-style: none; } .nawi a{ color: #fff; text-decoration: none; } </style>
удобнее воспользоваться инспектором разработки в браузере, редактируете css и все изменения сразу видны, только потом нужно скопировать, то что получилось и заменить вышеприведенный код.
1. Что за плагин и причем здесь виджеты не понял.
2.вставил непосредственно в Шаблон рубрик (category.php)
между строк
</header>
и
<?php /* Start the Loop */ ?>
3.подредактировал (это для себя пишу)<style>
.nawi li {
width: 301px;
padding: 0px 6px;
list-style: none;
}
.nawi a{
color: #245594;
text-decoration: none;
}
</style>4 !! Основная проблема. Я использую плагин для исключения вывода постов дочерних рубрик (ну чтобы вид был как в файловом браузере). Так вот если в рубрики нет постов, но есть подрубрики с постами, то ничего не выводит, пишет что ничего не найдено!!!
Как можно решить эту проблему?
5. Если 4 удастся решить для полной красоты хотелось бы получить перед каждой подрубрикой иконку папки, а после в круглых скобках количество постов. Это возможно?
Спасибо за помощь.Я использую плагин для исключения вывода постов дочерних рубрик (ну чтобы вид был как в файловом браузере). Так вот если в рубрики нет постов, но есть подрубрики с постами, то ничего не выводит, пишет что ничего не найдено!!!
И это абсолютно правильно, так как соответствует элементарной логике:
Если в рубрике нет постов и в ней также нет дочерней рубрики с её постами — то что собственно можно вывести?! ))))
Это называется искать черную кошку в темной комнате, заведомо зная что кошки там нет….
наверное вы не совсем внимательно прочитали
но есть подрубрики с постами
т.е. ситуация
cat1
-cat2
—post1
—post2
-cat3
—post3
—post4при переходе в cat1 не вводится ничего!!
Если я правильно понимаю надо изменить код
<article id="post-0" class="post no-results not-found"> <header class="entry-header"> <h1 class="entry-title"><?php _e( 'Nothing Found', 'tempera' ); ?></h1> </header><!-- .entry-header --> <div class="entry-content"> <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'tempera' ); ?></p> <?php get_search_form(); ?> </div><!-- .entry-content --> </article><!-- #post-0 -->
так чтобы еще выполнялась проверка наличия подрубрик.
Как это можно сделать?
Спасибо за помощь.Может в коде подрубрик завести какую нибудь переменную, которая присваивать 1 если имеются подрубрики, а код отсутствия постов вставить в проверку этой переменной , если она равна 1, то код просто обходится мимо?
Оффтоп.
Посмотрел Ваш сайт внимательно, зря Вы все записи сразу загружаете в левом блоке категорий «Зписи из путешесвий по странам, путешествиям и тд» , при чем они дублируются 2 раза, еще и в блоке «Записи по датам».
Если хотите выводить в таком же формате, то лучше используйте с аяксом(только не помню как плагин называется, но знаю, что видел)
По теме
Я использую плагин для исключения вывода постов дочерних рубрик
если в рубрики нет постов, но есть подрубрики с постами, то ничего не выводит
ну Вы же используете «плагин для исключения вывода постов дочерних рубрик», что там хотите увидеть тогда?
qwert555!
Я утром объяснил автору этого обсуждения тоже самое. Но он упорно не хочет этого понять. из за чего уже не первый день топчется на одном и том же месте:Если в рубрике нет постов и в ней также нет дочерней рубрики с её постами — то что собственно можно вывести?! ))))
Это называется искать черную кошку в темной комнате, заведомо зная что кошки там нет….
2 qwert555, Как что? так же и в файловом браузере — только подрубрики (1го уровня) без каких либо постов!
ря Вы все записи сразу загружаете в левом блоке категорий «Зписи из путешесвий по странам, путешествиям и тд» , при чем они дублируются 2 раза, еще и в блоке «Записи по датам».
Кэширование (и на уровне виджета категорий и на уровне всего сайта суперкэш)не «спасает» ситуацию?
Ну т.е. коенчно хорошо бы чтобы одинаковая информация не перегружалась каждый раз… но как это сделать? посмотрел по ключевых словам ajax и sidebar — ничего подходящего вроде не нашел((А как можно «не все записи сразу загружать»?
2 qwert555, а как модифицировать вам код, чтобы непосредственно указывать категорию? (Для вывода в произвольном месте списка подрубрик некой рубрики)
Мне помогли реализовать.
<?php
/**
* The template for displaying Category Archive pages.
*
* @package Cryout Creations
* @subpackage Tempera
* @since Tempera 1.0
*/get_header(); ?>
<section id=»container» class=»<?php echo tempera_get_layout_class(); ?>»>
<div id=»content» role=»main»>
<?php cryout_before_content_hook(); ?><?php if ( have_posts() ) : ?>
<header class=»page-header»>
<h1 class=»page-title»><?php
printf( __( ‘Category Archives: %s’, ‘tempera’ ), ‘<span>’ . single_cat_title( », false ) . ‘</span>’ );
?></h1><?php
$category_description = category_description();
if ( ! empty( $category_description ) )
echo apply_filters( ‘category_archive_meta’, ‘<div class=»category-archive-meta»>’ . $category_description . ‘</div>’ );
?>
</header>
<style>
.nawi li {
width: 301px;
padding: 0px 6px;
list-style: none;
}
.nawi a{
color: #245594;
text-decoration: none;
}
</style><ul class=»nawi»>
<?php
$args=array(
‘parent’ => get_query_var(‘cat’),
);
$news_cats = get_categories($args);
foreach ($news_cats as $news_cat):
echo ‘- term_id ).'» >’ . esc_html($news_cat->name).’
- term_id ).'» >’ . esc_html($news_cat->name).’
‘;
endforeach; ?><?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?><?php
/* Include the Post-Format-specific template for the content.
* If you want to overload this in a child theme then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part( ‘content/content’, get_post_format() );
?><?php endwhile; ?>
<?php if($tempera_pagination==»Enable») tempera_pagination(); else tempera_content_nav( ‘nav-below’ ); ?>
<?php else : ?>
<style>
.nawi li {
width: 301px;
padding: 0px 6px;
list-style: none;
}
.nawi a{
color: #245594;
text-decoration: none;
}
</style><ul class=»nawi»>
<?php
$args=array(
‘parent’ => get_query_var(‘cat’),
);
$news_cats = get_categories($args);
foreach ($news_cats as $news_cat):
echo ‘‘;
endforeach; ?><?php if(!$news_cats) : ?>
<article id=»post-0″ class=»post no-results not-found»>
<header class=»entry-header»>
<h1 class=»entry-title»><?php _e( ‘Nothing Found’, ‘tempera’ ); ?></h1>
</header><!— .entry-header —><div class=»entry-content»>
<p><?php _e( ‘Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.’, ‘tempera’ ); ?></p>
<?php get_search_form(); ?>
</div><!— .entry-content —>
</article><!— #post-0 —>
<?php endif; ?>
<?php endif; ?><?php cryout_after_content_hook(); ?>
</div><!— #content —>
<?php tempera_get_sidebar(); ?>
</section><!— #primary —><?php get_footer(); ?>
Выделенным то что я добавил. Наверное коряво, так как пришлось код 2 раза писать. Ну да ладно.
Вопрос Как к каждой дочерней рубрике добавить сбоку в скобках
количество постов в ней и всех ее дочерних рубриках?
что то типа такогоcat1(10)
http://selftrips.ru/category/1-chasti-sveta-i-strany/europa
здесь можно посмотреть как это выглядит в жизни.echo '<li><a href="'.get_category_link( $news_cat->term_id ).'" >' . esc_html($news_cat->name).'('.$news_cat->count.')</a></li>';
http://selftrips.ru/category/1-chasti-sveta-i-strany/europa
здесь можно посмотреть как это выглядит в жизни.не видно изменений
- Тема «Как отобразить дочерние рубрики на страницах рубрик?» закрыта для новых ответов.