» » » Шаблоны для категорий WordPress. Как сделать каталог из рубрики
logotip

Шаблоны для категорий WordPress. Как сделать каталог из рубрики

Всем привет! Сегодня на seo-mayak.com мы научимся создавать шаблоны для страниц категорий или рубрик, как угодно, на популярной CMS WordPress.

Тема довольно интересная и думаю многим этот урок придется по душе, так как львиная доля сообщества веб-мастеров понятия не имеет о том, что разработчики WordPress предусмотрели впечатляющую систему шаблонов, с помощью которой можно изменять структуру страниц с категориями до неузнаваемости.

О чем это я? Всем известно, что WordPress формирует страницы категорий в виде анонсов записей, где выводятся 5 или более анонсов, в зависимости от настроек.

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

shablony kategoriy

Вот я и решил сделать из данной статьи наглядное пособие по созданию иллюстрированных каталогов из страниц с категориями.

Кроме того я обещал одному моему постоянному читателю помочь с оформлением рубрик на его сайте с кулинарной тематикой, хотя я уверен, что данный материал будет полезен для многих веб-мастеров. Поехали!

Система шаблонов для категорий

Не так давно вышла моя статья, где я описал два способа создания шаблонов страниц и один из способов основывался на иерархии файлов. Что это такое?

В WordPress заложена логика, исходя из которой формируется «семейка» файлов, где каждый член семьи знает свое место. Помните детскую сказку про репку — «Дедка за репку, бабка за дедку, внучка за бабку» и т.д.

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

Иерархия файлов-шаблонов для категорий (рубрик) выглядит следующим образом:

category-slug.php -> category-id.php -> category.php -> archive.php -> index.php

Теперь давайте разберемся, что за цепочку файлов я здесь привел.

category-slug.php — данный файл имеет наивысший приоритет в иерархической системе шаблонов категорий, где sung — это условное название рубрики, вернее ее ярлык.

Давайте рассмотрим такой пример. Допустим рубрика называется «Мясные блюда». Для того, чтобы узнать какой у нее ярлык, надо пройти: адимн-панель -> Рубрики и кликнуть по названию нужной категории. На открывшейся странице мы увидим поле «Ярлык»:

shablon kategorii

Если мы создадим файл и таким названием:

category-myasnye-blyuda.php

И поместим его в корень темы, туда, где находятся файлы header.php, single.php, sidebar.php и т.д, то именно к нему в первую очередь обратится WordPress при выводе страницы с рубрикой «Мясные блюда».

category-id.php — файл, занимающий второе место в иерархической цепочке, в название которого входит ID страницы.

Многое я уже описал статье про шаблоны страниц, ссылку на которую я приводил выше, поэтому не буду повторятся.

category.php — файл, занимающий третье место в иерархической системе приоритетов. Файл с таким названием довольно часто используется разработчиками шаблонов WordPress. Именно на него возлагают функцию вывода всех страниц с категориями.

archive.php — данный файл занимает четвертое место в иерархии файлов-шаблонов и также довольно часто используется в темах WordPress. Но моем блоге именно archive.php отвечает за вывод рубрик.

index.php — файл, замыкающий на себе все иерархический цепочки файлов-шаблонов, будь-то шаблоны для главной или статической страниц, страниц категорий и т.д. И это понятно, ведь самые простейшие шаблоны могут состоять всего из двух файлов:  index.php и файла стилей style.css.

Итак, с иерархией шаблонов категорий мы немного разобрались, надеюсь объяснил понятно. Теперь, как и обещал, я расскажу, как наполнить файл-шаблон, чтобы из рубрики получился иллюстрированный каталог.

Как сделать из категории иллюстрированный каталог

Создаем файл category-sung.php или category-id.php, кому как нравится, я для примера создам на своем кулинарном блоге файл category-salaty.php. Далее наполняем файл тегами шаблона, такими как:

<?php get_header(); ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Следующим шагом вставляем индивидуальные стили, отвечающие за дизайн страницы, например:

<?php get_header(); ?>

<div class="span-24" id="contentwrap">
<div class="span-16">
<div id="content">

<!--Здесь будет код вывода категории-->

</div>
</div>

<?php get_sidebars(); ?>

</div>

<?php get_footer(); ?>

У вас наверняка другие кассы и идентификаторы. Посмотрите как прописаны стили и теги в файлах page.php, single.php и т.д. В общем придется поэкспериментировать, чтобы достичь корректного отображения страницы. Все эксперименты советую проводить на Денвере.

На разных сайтах по разному организована структура категорий и многие вебмастера используют дочерние категории, так называемые, подрубрики. Дело в том, что коды вывода постов из рубрик и подрубрик отличаются. Давайте разберем каждую ситуацию в отдельности.

Шаблон для категории без подкатегорий

Итак, если у категории нет дочерних категорий, то код шаблона будет выглядеть так:

<!--Выводим шапку-->
<?php get_header(); ?>
<!--Индивидуальные стили-->
<div class="span-24" id="contentwrap">
<div class="span-16">
<div id="content">
<!--Заголовок рубрики-->
<h2><?php single_cat_title(); ?></h2>
<!--Код вывода заголовков постов из категории с миниатюрами-->
<div class="katalog">
<ul><?php query_posts('category__in=625&showposts=100'); ?>
<?php while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(80,70)); ?></a>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
</li>
<?php endwhile; ?>
</ul>
</div>
<!--Конец кода вывода постов из категории-->
</div>
</div>
<!--Тег вывода сайдбара-->
<?php get_sidebars(); ?>
</div>
<!--Конец индивидуальных стилей-->
<!--Тег вывода подвала-->
<?php get_footer(); ?>

Хочу обратить Ваше внимание на несколько строчек:

Строчка №10.

<div class="katalog">

На этой строчки прописан css класс, для которого в файле style css надо прописать стили. Данный класс распространяется на все заголовки постов и миниатюры на странице.

Строчка №11.

<ul><?php query_posts('category__in=625&showposts=100'); ?>

Надо сказать, что вывод списка постов с определенной категории в данном коде организован с помощью функции query_posts(), которая может принимать множество параметров, что позволяет настроить довольно гибкую сортировку.

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

Сейчас же я хочу отметить два момента:

1. category__in=625

Здесь надо указать ID категории из которой будут выводится информация category__in=625, где 625 — ID категории. Также можно вывести посты из нескольких рубрик, для этого надо прописать ID соответствующих категорий через запятую — category__in=625,344,555.

2. showposts=100

Здесь задается количество постов для вывода на странице, где 100 — количество постов. Если не прописывать данное значение, то функция query_posts() возьмет его из настоек WordPress, но потом не надо удивляться, что на странице будет отображаться всего 5 — 10 постов.

Строчка №14.

<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(120,100)); ?></a>

Данная строчка отвечает за вывод миниатюры, которая будет являться ссылкой на пост. Если Вы не хотите чтобы миниатюра была ссылкой, то уберите конструкцию и оставьте только функцию:

<?php the_post_thumbnail(array(120,100)); ?>

Но обратить Ваше внимания я хотел совсем на другое. В функции the_post_thumbnail() в качестве параметра заданы размеры миниатюры —(array(120,100)), которые можно изменить на свое усмотрение.

Закидываем созданный файл в корень темы и теперь в файле style.css нам надо прописать стили для класса .katalog. Рассмотрим два варианта:

Вариант№1. Если стоит задача вывести миниатюры в несколько рядов и чтобы при этом заголовки располагались под картинками, в виде ссылок, то стили должны выглядеть так:

.katalog { /* общие стили для блока */
width: 99%; /* общая ширина блока */
margin: 0 auto; /* внешние отступы сверху и снизу, а также выравнивание по центру */
}
.katalog li{ /* стили для элементов списка */
float: left; /* миниатюры располагаются слева от соседней */
height: 150px; /* высота ячейки с миниатюрой и заголовком */
width: 120px; /* ширина ячейки */
margin: 5px 10px 0 0; /* внешние отступы сверху и справа от ячейки */
overflow:hidden; /* скрываем все что не поместилось в ячейку */
}
.katalog img{
/* здесь можно задать отдельные стили для миниатюр */
}
.katalog a{
/* здесь можно задать отдельные стили для ссылок */
}

Теперь если я открою рубрику «Салаты», то увижу следующее:

shablon kategoriy1

Очень даже не плохо! Но можно сделать и по-другоиму.

Вариант №2. Немного подправим стили и миниатюры расположатся столбиков в два ряда:

.katalog li{
float:left; 
height:70px;
margin-right:20px;
margin-top:1px;
overflow:hidden;
width:250px;
list-style-type: none;
}
.katalog {
width: 700px;
margin: 0 auto;
}
.katalog ul{
margin-bottom: 10px;
padding-left: 20px !important;
display: inline-block;
}
.katalog a{
font-size:14px;
color:#0000CC;
text-decoration: none;
}
.katalog img{
float: left;
border-radius: 10px;
border: 2px solid #ccc;
margin-right: 10px;
}
.katalog a:hover{
color:#FF2B2B;
}

Вуаля:

shablon kategoriy2

Здесь я не стал комментировать предназначение тех или иных селекторов и их значений. Если что не понятно, спрашивайте в комментариях. Идем дальше.

Шаблон для категорий с дочерними категориями

Сразу скажу, что из родительской категории мы возьмем только общий заголовок, иначе получатся повторения ссылок и миниатюр.

Для примера я возьму категорию со своего блога, которая называется «Создание блога». По схеме, описанной выше, создам файл category-sozdanie-bloga.php и наполню его следующим кодом:

<!--Выводим шапку-->
<?php get_header(); ?>
<!--Индивидуальные стили-->
<div class="span-24" id="contentwrap">
<div class="span-16">
<div id="content">
<!--Заголовок рубрики-->
<h2><?php single_cat_title(); ?></h2>
<!--Код вывода заголовков постов с миниатюрами-->
<div class="katalog">
<?php
$cat_args=array(
'child_of' => 10,
'orderby' => 'name',
'order' => 'ASC'
);
$categories=get_categories($cat_args);
foreach($categories as $category) {
$args=array(
'showposts' => -1,
'category__in' => array($category->term_id),
'caller_get_posts'=>1
);
$posts=get_posts($args);
if ($posts) {
echo '<h2>'.$category->name.'</h2> ';
foreach($posts as $post) {
setup_postdata($post); 
?>
<ul>
<li> 
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(80,70)); ?></a>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
</li>
</ul>
<?php
} 
} 
} 
?>
</div>
<!--Конец кода вывода постов из категории-->
</div>
</div>
<!--Тег вывода сайдбара-->
<?php get_sidebars(); ?>
</div>
<!--Конец индивидуальных стилей-->
<!--Тег вывода подвала-->
<?php get_footer(); ?>

Обратите внимание на строчку №13:

'child_of' => 10,

Здесь надо указать ID родительской категории.

Стили я возьму из второго варианта, немного подправлю некоторые значения и вот что получится:

shablon kategoriy3

По-моему не плохо! Может стоит заняться и переделать все страницы с рубриками. Как Вы считаете?

Как прикрутить постраничную навигацию к шаблону категории

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

Вариант №1. Шаблон для категории без подкатегорий.

<!--Выводим шапку-->
<?php get_header(); ?>
<!--Индивидуальные стили-->
<div class="span-24" id="contentwrap">
<div class="span-16">
<div id="content">
<!--Заголовок рубрики-->
<h2><?php single_cat_title(); ?></h2>
<!--Код вывода заголовков постов из категории с миниатюрами-->
<div class="katalog">
<ul><?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(80,70)); ?></a>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
</li>
<?php endwhile; else: ?>
<h3><?php _e('К сожалению, по Вашему запросу ничего не найдено.'); ?></h3>
<?php endif; ?>
</ul>
<!--КОД ВЫВОДА ПОСТРАНИЧНОЙ НАВИГАЦИИ-->
</div>
<!--Конец кода вывода постов из категории-->
</div>
</div>
<!--Тег вывода сайдбара-->
<?php get_sidebars(); ?>
</div>
<!--Конец индивидуальных стилей-->
<!--Тег вывода подвала-->
<?php get_footer(); ?>

Код вывода постраничной навигации должен вставляется в помеченную мной строчку №20.

Я изменил цикл вывода статей на стандартный цикл WordPress и теперь все параметры настроек должны прописываться в отдельной функции.

Например, изменим заданное в админке количество анонсов на желаемое количество для конкретной категории.

Для этого в файл functuons.php вставляем такую функцию:

add_action( 'pre_get_posts', 'mayak_category_announcement' ); 
function mayak_category_announcement( $query ) {
	if ($query->is_main_query() && is_category(7))  
		$query->set( 'posts_per_page', 5 );
	} 

В строчке №3, в условном теге is_category(), надо указать ID категории, на которое будет распространяться данное событие. Если ID не указать, то настройка будет применяться ко всем категориям.

В строчке №4, в качестве значения аргумента posts_per_page ставим желаемое количество отображаемых анонсов.

Теперь все должно работать. На этом все!

Кстати, кому интересно понять анатомию создания категорий на WordPress, прошу сюда.

Как выводить рубрики WordPress — все аргументы функции wp_list_categories().

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

До встречи!

С уважением, Виталий Кириллов

Статьи по теме:

Редактор для категорий (рубрик), меток и произвольных таксономий
Title, description, keywords и h1 для категорий (рубрик) WordPress
Картинки для категорий (рубрик) — изображения WordPress

(предыдущая статья)
(следующая статья)

Комментарии: 146

  1. Наталья:

    Очень интересно! Спасибо, Виталий! Может, и стоит заняться)

    Ответить
    • Виталий Кириллов:

      Рад видеть Вас снова на блоге Наталья)

      Ответить
  2. Александр Силиванов:

    Очень хорошая статья, Виталий! Впрочем, как всегда. Надо заняться и попробовать переделать шаблоны рубрик. А то у меня страницы с рубриками открываются… ну очень неприглядными и неинтересными! Вот только время…

    Ответить
    • Виталий Кириллов:

      Спасибо Александр!

      Ответить
  3. seoonly:

    Cпасибо, вышло вполне красиво

    Ответить
  4. Юлия:

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

    Ответить
    • Виталий Кириллов:

      Здравствуйте Юлия! Шаблон можно сделать для любой категории или подкатегории. У вас скорее всего где-то ошибка, ищите!

      Ответить
      • Юлия:

        да вроде нету, шаблон тот же что и на те же салаты что получились, просто поменяла шапку и ид категории, но почему то не идет(

        вот так, не могу понять почему, я в этом плохо разбираюсь,.только учусь, спасибо

        Ответить
        • Виталий Кириллов:

          Юлия воспользуйтесь преобразователем!

          Ответить
  5. Юлия:

    <!—Салаты—>
    <?php get_header(); ?>
    <div class="span-24" id="contentwrap">
    <div class="span-16">
    <div id="content">
    <!—Салаты—>
    <h2><?php single_cat_title(); ?></h2>
    <div class="katalog1">
    <ul><?php query_posts('category__in=87&showposts=50'); ?>
    <?php while (have_posts()) : the_post(); ?>
    <li>
    <a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(80,70)); ?></a>
    <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
    </li>
    <?php endwhile; ?>
    </ul>
    </div>
    </div>
    </div>

    <?php graphene_posts_nav(); ?>

    <?php get_footer(); ?>

    и

    <!—Закуски—>
    <?php get_header(); ?>
    <div class="span-24" id="contentwrap">
    <div class="span-16">
    <div id="content">
    <!—Закуски—>
    <h2><?php single_cat_title(); ?></h2>
    <div class="katalog1">
    <ul><?php query_posts('category__in=88&showposts=50'); ?>
    <?php while (have_posts()) : the_post(); ?>
    <li>
    <a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(80,70)); ?></a>
    <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
    </li>
    <?php endwhile; ?>
    </ul>
    </div>
    </div>
    </div>

    <?php graphene_posts_nav(); ?>

    <?php get_footer(); ?>

    Ответить
    • Виталий Кириллов:

      Юлия, кроме ID категории надо еще название файла изменить.

      Ответить
      • Юлия:

        я изменяю конечно, скажите а вы вообще помогаете платно с сайтами? если да как с вами связаться?спасибб

        Ответить
        • Виталий Кириллов:

          Юлия, просто напишие через форму обратной связи.

          Ответить
  6. Надежда:

    Потрясающе! Вряд ли у меня хватит выдержки переделывать сайт, но это было бы здорово! Виталий, я Вам говорила, что Ваш блог — клондайк? Что же раньше не довелось повстречать его? Хотя всему свое время. Спасибо!

    Ответить
    • Виталий Кириллов:

      И вам спасибо Надежда за теплые слова!

      Ответить
      • Надежда:

        Виталий, так материал для меня очень актуальный. На сайте много товаров, много категорий. Такого наворотила, чтобы как-то классифицировать, и даже руки опустила. Может, все-таки попробую на полигоне своем поковыряться.

        Ответить
  7. Maxim:

    Здравствуйте! Очень полезная статейка! Но у меня никак не получается организовать как у вас во втором варианте. каталог в два столбика. И сайт бар улетает и становиться справа после записей!

    Ответить
  8. Виталий:

    Добрый день очень полезная информация! а нет простенького плагина который организовал бы вывод статей на страницу каталога?

    Ответить
    • Виталий Кириллов:

      Здравствуйте! Я таких не знаю.

      Ответить
  9. Сергей:

    Немного не в тему, но не подскажете, как можно в категориях выводить заголовки анонсов статей в h2. Просто на главной и в самих записях все нормально выводится. Но в категория идет сплошным H1. Не пойму откуда он берется. Файла category.php у меня нет. Есть arhive.php. Нашел там такой код:

    if (is_category()) {
    echo '<h1>' . single_cat_title('', false) . '</h1>';
    echo category_description();
    } elseif (is_tag()) {
    echo '<h1>' . single_tag_title('', false) . '</h1>';
    } elseif (is_day()) {

    Там название выводится в H1. Это нормально. Но как сделать заголовки анонсов с h1 в h2? Там походу какой-то код нужно прописать.

    Ответить
  10. Марриэтта:

    Здравствуйте. Вы мне не поможете? У меня рядом с рубриками вместо точки или стрелочки появились коды и не знаю как и где их убрать. Помогите пожалуйста!

    Ответить
    • Марриэтта:

      Вопрос снят, уже разобралась)

      Ответить
  11. Сергей:

    Статья очень интересная, но чем больше читаю и узнаю про WordPress тем больше хочется вернуться к написанию сайтов на простом PHP без всяких извращений.

    Ответить
  12. Андрей:

    Подскажите, как закрыть от поиска одну из рубрик, заранее спасибо за ответ.

    Ответить
    • Виталий Кириллов:

      Андрей, вы имеете в виду закрыть рубрику от индексации, чтобы она не попала в поисковую выдачу или вы хотите исключить определенную рубрику из поиска сайта. Точнее пожалуйста, что значит закрыть от поиска?

      Ответить
  13. greench277:

    Всех с новым годом.я бы хотел узнать ,у меня в рубриках исчезли цифры 1,2,3 переходы на следующие страницы,как мне их вернуть ?

    Ответить
    • Виталий Кириллов:

      Наконец-то дошли руки прикрутить постраничную навигацию. Код в конце статьи.

      Ответить
  14. Web-informer:

    Ребят, спасибо большое. Очень долго искал такую информацию. Теперь наконец-то сделаю.

    Ответить
  15. Дмитрий:

    Виталий, спасибо за столь подробное описание очень нужных вещей. Пока пробую на тестовом блоге и столкнулся с такой непонятной для меня штукой.
    Я специально задал параметр showposts небольшим, чтобы прикрутить постраничную навигацию без плагина.
    Навигация отображается, но все её ссылки ведут на 404 страницу. В чем может быть проблема?

    Ответить
    • Виталий Кириллов:

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

      Ответить
  16. Андрей:

    Здравствуйте!
    Хотел сделать шаблон для категории так как вы описали и столкнулся с такой проблемой:
    за вывод категории у меня отвечает archive.php, я создаю файл category-xxx.php, но он не подхватывается вордпрессом, так как archive.php лежит не в корневой папке темы (как и другие файлы — single.php и подобные, которые я редактирую). Если я перемещаю category-xxx.php в корневую папку темы он подхватывается, но на сайте для этой категории — пустота.
    Виталий, очень надеюсь на Вашу помощь! Спасибо.

    Ответить
    • Виталий Кириллов:

      Андрей, если файл подхватывается, значит проблема в содержании файла. Возможно расположение файла archive.php определено константой, но я не уверен. Причин может быть много.

      Ответить
  17. Сергей:

    Самый тупой и некчемный движок какой когда либо видел и автор статьи наглядно это продемонстрировал, для того чтобы вывести категории нужно квадратные колеса WordPress закруглить а они все равно получаются овальные и ни как на каталог не тянет,на php я бы все категории и под категории и статьи вывел одним файлом без всяких заморочек.
    А здесь автор не написал откуда взялись превьюшки к рубликам ведь в WordPress нет привязки картинок к рубликам а нужно искать плагины которые тоже нужно править топором и рубанком чтобы на что то походило.А сколько запросов к базе дает WordPress? Когда название рублики в одной таблице описание в другой а картинка вообще у черта на куличках, могли бы хоть лишнее поле создать для картинки чтоб к рубликам привязать было легче и не изобретать велосипед.

    Ответить
  18. Djin:

    Здравствуйте!
    Прочитал Вашу статью, и тут же возникла мыль, сделать шаблон для категорий и подкатегорий в виде вертикального аккордиона. Тем более что на HTML в Ucoze, мне удалось его реализовать. Вся загвостка в том что, аккордионы не работают на одной странице больше одного, не знаю почему! Но методом тыка я на гуглил, который работает.
    Пытался его вотнкнуть в WordPress? Ничего не получается, темболее я в этих делах полный профан, ковыряюсь чисто интуитивно.
    Усли Вам интересно, то можете посмотреть как это работает тут: etaji.at.ua/load/1.
    Надеюсь что мой коментарий, не останется без ответа.
    Спасибо за внимание!

    Ответить
    • Виталий Кириллов:

      Здравствуйте! С аккордеонами я не связывался и мне не знакома их структура. Пришлите мне ссылочку, где вы нагуглили рабочий аккордеонами я попробую его установить на Денвер и разобраться. Но скорого ответа не обещаю.

      Ответить
  19. Владимир:

    Добрый день!
    Думаю вывести в рубриках записи по рейтингу (буду использовать плагин WP-PostRatings, думаю, соображу как код плагина установить по аналогии с этой статьей).
    Но вопрос в другом: как сделать так, чтоб на странице рубрики первые, например, ТРИ записи отражались с крупными миниатюрами, следующие — с 4-й по 10-ю — с миниатюрами помельче, а с 11-й по 100-ю — вообще без превьюшек?

    Ответить
    • Виталий Кириллов:

      Здравствуйте Владимир! В рамках комментария я не смогу ответить на Ваш вопрос. Такие вещи тянут на платную услугу.

      Ответить
  20. Дмитрий:

    Здравствуйте. Не подскажете как вывести на странице категории только ссылки на дочерние категории?

    Ответить
    • Виталий Кириллов:

      Здравствуйте Дмитрий! Как-то так:

      <!--Начало вывода дочерних категорий-->
      <div class="katalog4">
      <?php
      $cat_args=array(
      'child_of' => 0,
      'orderby' => 'name',
      'order' => 'ASC'
      );
      $categories=get_categories($cat_args);
      foreach($categories as $category) {
      $args=array(
      'showposts' => -1,
      'category__in' => array($category->term_id),
      'caller_get_posts'=>1
      );
      $posts=get_posts($args);
      if ($posts) {
      foreach($posts as $post) {
      setup_postdata($post); 
      ?>
      <ul>
      <li>
      <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
      </li>
      </ul>
      <?php
      } 
      } 
      } 
      ?>
       </div>
      <!--Конец вывода дочерних категорий-->
      
      Ответить
      • Дмитрий:

        Выводит только список всех сообщений…

        Ответить
        • Виталий Кириллов:

          Ах вон оно что) Сори, сразу не понял. Ну тогда как-то так:

          <?php
          if ( !empty($cat) ) :
            $parent_cat = get_category($cat);
            $output = "<p>Рубрики раздела {$parent_cat->name}($cat):</p>";
            $args = array(
              'title_li' => null,
              'child_of' => $cat,
              'depth' => 1,
              'echo' => 0,
              'hide_empty' => 0,
              'show_count' => 0,
            );
            $output .= wp_list_categories($args);
            print $output;
          endif;
          ?>
          
          Ответить
          • Дмитрий:

            Все как надо, спасибо!

            Ответить
  21. Димир:

    Каталог из категории получился. Но список страниц пропал.
    То есть у меня в рубрике 150 записей. Я указал showposts=50
    в расчете, что будет три страницы. Но показывает только 50 последних записей, а остальных тупо нету и навигации постраничной нету(

    (было 15 страниц по 10 записей и постраничная навигация, которую когда-то настраивал по инструкции с сайта Алаича)

    Можно как то сохранить постраничную навигацию?

    Ответить
    • Виталий Кириллов:

      Димир, я выберу время и прикручу постраничную навигацию, потом отпишусь.

      Ответить
      • Димир:

        Здравствуйте, Виталий.
        Еще не прикрутили, эту очень полезную вещь?

        Ответить
        • Виталий Кириллов:

          Здравствуйте Димир!
          Если Вы устанавливали постраничную навигацию по моей статье, то сделать надо следующее.
          После строчки:

          <!--Конец кода вывода постов из категории-->

          Вставляем код вызова постраничной навигации:

          <?php if (function_exists('kama_pagenavi')) kama_pagenavi(); ?>

          И все дела!

          Ответить
          • Димир:

            Здравствуйте, Виталий.
            Также как и у Вас постраничную навигацию для рубрик я делал по Алаичу.
            В обычных рубриках вызов kama_pagenavi прекрасно работает.
            А в индивидуальной рубрике, сделанной по этой, текущей, статье, kama_pagenavi работает не корректно.
            Я в первом своем сообщении не точно описал проблему. Когда kama_pagenavi подключена — циферки страниц отображаются, но при клике на цифру «2» после её загрузки отображается все равно 1-я страница — первые 50 записей. Остальные же записи посмотреть невозможно. При клике на цифру «3» опять видим первую страницу категории. Хотя в командной строке отображается …/page/2 ну или /page/3

            Ответить
            • Виталий Кириллов:

              Димир, уточните какая структура у Вашего сайта, Вы используете подрубрики?

              Ответить
              • Димир:

                Речь идёт о дочерней рубрике.
                Вот так у меня код выглядит:
                <!—Код вывода заголовков постов из категории с миниатюрами—>
                <div class="katalog">
                <ul><?php query_posts('category__in=510&showposts=50'); ?> <!— seo-mayak.com/sozdanie-bloga/nastrojka-wordpress/shablony-dlya-kategorij-rubrik-wordpress.html —>
                <?php while (have_posts()) : the_post(); ?>
                <li>
                <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php echo catch_that_image() ?>&amp;h=90&amp;w=90&amp;q=100&amp;zc=1" class="title_img" /></a>
                <div class="katalog_vert"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></div><br/>
                </li>
                <?php endwhile; ?>
                </ul>
                </div>
                <!—Конец кода вывода постов из категории—>

                Одну строчку пришлось изменить — поставил скрипт timthumb из своего шаблона, так как Ваш не показывал картинки.

                Ответить
                • Виталий Кириллов:

                  Димир, я писал в статье, что за количество выводимых записей на одной странице отвечает параметр showposts. У вас в коде задано выводить 50 записей, так чему тут удивляться, что все 50 записей и отображаются. Задайте 10 записей и будет выводиться 10 и все дела. Можно вообще не прописывать данный параметр, тогда функция возьмет количество записей из настроек WordPress.

                  Ответить
                  • Димир:

                    Я писал выше что у меня 150 записей в этой рубрике

                    Ответить
          • Димир:

            но при этом сама постраничная навигация отображает активной ПЕРВУЮ страницу -как и есть по факту (в css у меня у активной страницы цвет фона другой).

            Ответить
            • Виталий Кириллов:

              Думаю некорректно указаны индивидуальные стили шаблона, поэтому и фон меняется.

              Ответить
  22. Алексей:

    Здравствуйте! Ситуация такая Категории обрамлены тегом ul (выводятся через виджет)
    Подскажите пожалуйста как тегу ul задать свой класс? где что нужно прописать чтобы добавить класс для ul

    Ответить
    • Виталий Кириллов:

      Здравствуйте Алексей!
      Вот как прописывается:

      <ul class="любой класс">
      <li></li>
      </ul>
      
      Ответить
      • Алексей:

        это то я знаю Это то что я хочу сделать только в коде шаблона нет ul тега Рубрики вставляю через виджет «Рубрики» и где этот тег с классом прописать не знаю

        Ответить
  23. Рафаэль:

    Как же я давно искал это решение! Наконец-то! Спасибо огромное что вы есть и есть этот пост!)) Придётся конечно повозиться (я искал плагин), но ничего, главное решение есть! Спасибо!

    Ответить
  24. Рафаэль:

    Здравствуйте! Что-то не совсем получилось — нет миниатюр, только названия. Подскажите что сделал не так? У меня стоит тема Graphene

    Ответить
    • Виталий Кириллов:

      Здравствуйте Рафаэль! А у Вас включена функция поддержки миниатюр?

      Ответить
  25. Виктор:

    А подскажите как на странице стандартной категории сделать вывод записей из одной категории а то ваш вариант рабочий только получилось что теперь на страницах категории выводятся последнии записи по очередно
    было в index.php
    <?php $options = get_option(‘mh_options’); ?>
    <?php get_header(); ?>
    <div class="wrapper clearfix">
    <div class="main">
    <section class="content <?php mh_content_class(); ?>">
    <?php mh_before_page_content(); ?>

    <?php if (category_description()) : ?>
    <section class="cat-desc">
    <?php echo category_description(); ?>
    </section>
    <?php endif; ?>
    <?php mh_loop_content(); ?>
    </section>
    <?php get_sidebar(); ?>
    </div>
    <?php mh_second_sb(); ?>
    </div>
    <?php get_footer(); ?>

    убрал

    <?php mh_loop_content(); ?>

    и стало

    <?php $options = get_option(‘mh_options’); ?>
    <?php get_header(); ?>
    <div class="wrapper clearfix">
    <div class="main">

    <section class="content <?php mh_content_class(); ?>">

    <?php mh_before_page_content(); ?>

    <?php if (category_description()) : ?>
    <section class="cat-desc">
    <?php echo category_description(); ?>
    </section>
    <?php endif; ?>

    <div class="katalog">
    <ul><?php query_posts(‘showposts=100’); ?>
    <?php while (have_posts()) : the_post(); ?>
    <li>
    <a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(80,70)); ?></a>
    <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
    </li>
    <?php endwhile; ?>
    </ul>
    </div>

    </section>

    <?php get_sidebar(); ?>
    </div>
    <?php mh_second_sb(); ?>
    </div>
    <?php get_footer(); ?>

    Ответить
    • Виталий Кириллов:

      Чтобы записи выводились из определенной категории надо указать ID данной категории. В статье все описано, процитирую:

      Строчка №11.

      <?php query_posts('category__in=625&showposts=100'); ?>

      Надо сказать, что вывод списка постов с определенной категории в данном коде организован с помощью функции query_posts(), которая может принимать множество параметров, что позволяет настроить довольно гибкую сортировку.

      Где 625 — id категории.

      Ответить
  26. igor:

    Здравствуйте.
    Есть необходимость сделать общий шаблон для всех подрубрик одной рубрики.
    -Автомобиль
    —Ауди
    —Запорожец
    —Мерседес
    —…
    На ум приходит только category-audi.php, category-zaporojec.php и т.д.
    Но если таких подкатегорий много? мне кажется клонирование таких файлов нагрузит сайт, увеличит объем шаблона, да и обломно будет размножать большое количество файлов.
    Можно как-то присвоить шаблон всем подрубрикам рубрики?
    category-automobil.php не прокатывает, с этим файлом работает только отображение самой категории Автомобиль, и на пордубрики не распространяется.

    Ответить
    • Виталий Кириллов:

      Здравствуйте! Да шаблон рубрики не распространяется на подрубрики. Здесь есть следующий вариант. Если у всех подрубрик должен быть одинаковый шаблон, то его можно сделать на основе файла category.php, а для основных рубрик сделать отдельные шаблоны, типа category-automobil.php.

      Ответить
  27. Максим Многин:

    Спасибо за статью, как раз то что искал. Думал как заменить посты в рубриках чтобы было легче ориентироваться пользователям. Очень помогли!)

    Ответить
  28. Михаил:

    Добрый день!
    пытаюсь сделать доску объявлений
    вопрос как настроить постоянные ссылки, чтобы выводились категория, дата и название (в ссылке)
    и еще вопрос скажите пожалуйста если будет два одинаковых записи в один день как отобразится ссылка?
    Извините если выражаюсь неграмотно, заранее спасибо

    Ответить
    • Виталий Кириллов:

      Здравствуйте Михаил!
      Добавьте к выводу такие строки:

      <a href='<?php the_category() ?>' rel="bookmark"><?php single_cat_title() ?></a>
      <?php the_date(); ?>
      
      Ответить
  29. Марина:

    Здравствуйте. Воспользовалась вашей инструкцией, все получилось, за исключением одного момента. Не могу разобраться как в классах (вариант № 2), убрать разделение на два столбика. Мне нужно, чтобы они были в один столбец — миниатюра слева, рядом заголовок.

    Ответить
    • Виталий Кириллов:

      Здравствуйте! Подсказка: все дело в ширине ячейки, установите ширину ячейки равную ширине блока.

      Ответить
      • Марина:

        Сейчас у меня стили выглядят так
        .katalog li{float:left; margin-right:20px;margin-top: -10px;margin-bottom: -10px;overflow:hidden;width:500px;list-style-type: none;}
        .katalog {width: 500px;margin: 0 auto; line-height: 26px;}
        .katalog ul{margin-bottom: 10px;padding-left: 20px !important;display: inline-block;}
        .katalog a{font-size:15px;color:#544b40;text-decoration: none;}
        .katalog img{float:left; margin-top: 5px;border-radius: 10px;border: 2px solid #ccc;margin-right: 10px;}
        .katalog a:hover{color:#660000;}
        .wp-post-image {margin:10px auto 3px;width:120px;height:100px;display: block;}
        в категории 2 новости -верхняя нормально, а нижняя начинается посередине строки и частично заходит в заголовок верхней

        Ответить
        • Виталий Кириллов:

          Марина, уроки css в комментариях я давать не планировал, так как дело это не благодарное.
          У вас указан внешний отступ вправо для каждой ячейки (margin-right:20px) и общая длина ячейки (width:500px) и общая длина блока (width: 500px). Так куда должны влезть 20px отступа вправо и вообще если у вас всего одна колонка, то зачем нужен этот отступ?

          Ответить
  30. Дмитрий:

    И здравствуйте!
    Даже до начала эксперимента на своих сайтах выражаю Вам огромную благодарность за данный материал — он мне сейчас как никогда оказался нужен и полезен.
    Буду в дальнейшем изучать ваш блог.

    Ответить
  31. Любовь:

    Подскажите, пожалуйста. В моей теме нет файла category.php, есть, наверное, как у вас archive.php. Чтобы сделать для рубрики с ярлыком shop другой шаблон-нужно создать файл archive-shop.php? Я создала такой, но на сайте ничего не изменилось.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Любовь! Создавать файл надо под названием category-shop.php.

      Ответить
      • Любовь:

        Спасибо большое! Всё получилось)

        Ответить
  32. Алексей:

    Отличная статья! Спасибо! А можно ли во втором варианте сделать так, чтобы названия дочерних рубрик были ссылками на эти рубрики.
    Прочитал в комментах варианта отображения списка ссылок на рубрики, но применить на второй вариант не получилось((, чтоб и список записей тоже был. Спасибо за ответ.

    Ответить
    • Виталий Кириллов:

      Попробуем, но немного позже!

      Ответить
  33. White_Jedy:

    Спасибо! Статья Ваша очень помогла!
    Вопрос:
    На главной (index.php урл localhost/siteBlogwp5.local/)под слайдером и статьей идет вывод блогов(миниатюра,описание,ридмо) и стоит пагинация, щелкаем по пагинации и урл становится localhost/siteBlogwp5.local/page/2.
    /page/2 — это что такое? можно это тоже сделать как отдельно редактируемая страница?
    Или что почитать на эту тему ,просто трудно понять только начал wp учить.

    Ответить
  34. Рустам:

    Добрый день. Прошу помощи, создал каталог из банков youandcredit.ru/banki, но при увеличении миниатюры к примеру более 140px ссылка внизу пропадает, т.е. происходит наложение картинки на текст, и как можно реализовать чтобы ссылка под картинкой была всегда в центре, т.к. на коротких названиях располагается справа. спасибо

    Ответить
  35. maksimmka:

    Гуглил,гуглил и нешел то что искал) сейчас займусь экспериментами. позже отпишусь о результатах.

    Ответить
  36. Инсаф:

    А как сделать страницу для категории /nastrojka-wordpress с родителем /sozdanie-bloga в твоем случае. Т.е. страницу для подкатегории.
    Я сделал страницу с названием category-catalog.php вывожу туда весь каталог.
    Теперь нужно создать страницу с определеными категориями. А в адресной строке было:
    example.ru/catalog/podkategoriy/

    Ответить
    • Виталий Кириллов:

      Инсаф, просто назовите файл category-ярлык_подкатегории.php, а в шаблоне используйте код из варианта без подкатегорий, с указанием нужного id.

      Ответить
  37. Наталья:

    Здравствуйте, использую первый вариант. А как сделать, чтобы под миниатюрой отображалась не одна ссылка — название статьи, но и еще одна строка текста, нужно указать автора и цену.

    Ответить
    • Виталий Кириллов:

      Наталья Вы имеете в виду кусочек начала поста? Или какой-то конкретный участок текста?

      Ответить
      • Наталья:

        Предполагается что на сайте много тех, кто может публиковать. Под каждой статьей указывается автор и ссылка на него, можно ли ее вывести вместе с миниатюрой каталога. И да, нужен кусочек начала поста. Но я уже думаю, что ваш вариант каталога мне наверное не подойдет, рубрик планируется штук 100. Конечно можно сделать столько много страниц дополнительных, но, наверное, это очень замедлит работу сайта. Я новичок, надеюсь задаю не слишком смешные вопросы.

        Ответить
  38. Наталья:

    <a href="» rel=»bookmark»> добавила вот это, появился автор поста. Но ссылка ведет не на его личный кабинет, как хотелось бы, а открывает все ту же публикацию, что и миниатюра.

    Ответить
    • Наталья:

      ?php the_author(); ?>

      Ответить
      • Виталий Кириллов:

        Наталья, я так понял вы решили проблему? Или еще что-то от меня требуется?

        Ответить
  39. Максим:

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

    Ответить
    • Виталий Кириллов:

      Здравствуйте! Ерунда полная, берете и правьте php файл, самое главное найти где.

      Ответить
  40. Максим:

    Да найти сложновато, тем более файлы нестандартные. Но вроде получается потихоньку через меню поиск (Ctrl+F) каждый проверяю.

    Ответить
  41. Денис:

    Добрый вечер,и с наступающим вас.Я с вами надолго на вашем сайте кажется, и мой первый вопрос.
    Сразу хочу сказать я не такой знаток всяких там кодов-
    Пока сделал у себя так вот(код не буду приводить)код тот что под этими вашими словами.

    Итак, если у категории нет дочерних категорий, то код шаблона будет выглядеть так:
    ——————
    Я больше нечего не делал в файле style.cs не лазил вообще обновил страницу и вот что получилось

    http://joxi.ru/XYmEqpos9Rzwm6 почему так получилось в файле style.cs не лазил

    Ответить
  42. Денис:

    Я у вас вчера оставлял комент а вы удалили его-

    Ответить
    • Виталий Кириллов:

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

      Ответить
  43. Мкс:

    Добрый день!
    А если на странице категории выводится множество записей, как добавить возможность пагинации?

    Ответить
    • Виталий Кириллов:

      Добавил в статью вариант кода, с возможностью вывода постраничной навигации.

      Ответить
  44. Юлия:

    Я добавила файлы category-ярлык.php, пробовала и category-id.php, и просто catergory.php, но шаблоны для рубрик все-равно берутся из файла index.php. Что я не так сделала? Вот файлы из моей темы http://joxi.ru/8239dqwC64LZOr

    Ответить
    • Виталий Кириллов:

      Трудно сказать, у меня не было такой проблемы. Видимо особенности темы.

      Ответить
  45. Максим:

    Спасибо Вам за Ваши труды! все предельно ясно и подробно обьяснили. Буду пробовать делать.

    Ответить
  46. Виктор:

    Здравствуйте! Отличный материал! Но вот я на своем сайте никак не могу сделать белый фон для описания рубрик. Пожалуйста, посмотрите в любой из рубрик на сайте — как это можно сделать? Спасибо.

    Ответить
  47. Юлия:

    Здравствуйте! Подскажите пожалуйста, можно ли настроить так чтобы название рубрики в которой нет записи тоже появлялась на странице. Если такое возможно, то что и куда нужно добавить?
    Спасибо.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Юлия! Почитайте вот эту статью, там есть ответ.

      Ответить
  48. anderzik:

    такой вопрос делал так как здесь описано… создавал файл category_slug.php
    но мне сказали што ето очень жосткий кастиль…
    тому вопрос если ето же самое описано в кодексе являетса ето кастилем?

    Ответить
  49. Max:

    Спасибо по поводу блока содержание статьи.
    вопрос по теме. Как сделать вывод не статей, а вывод подкатегории родителя c миниатюрой и названием подрубрики.

    Ответить
  50. сергей:

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

    Ответить
  51. сергей:

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

    Ответить
  52. MAx:

    Почему то пагинация не работает у меня

    Ответить
  53. Антон:

    Здравствуйте, а как сделать разные шаблоны для:
    1. Страница рубрики, где перечисляются все статьи.
    2. Для самой статьи данной рубрики.

    Ответить
  54. сергей:

    Ответьте пожалуйста на мои вопросы

    Ответить
    • Виталий Кириллов:

      Вот мой css код.

      .katalog4 li{
      float:left;
      height:80px;
      margin-right:20px;
      margin-top:1px;
      overflow:hidden;
      width:300px;
      list-style-type: none;
      }
      .katalog4 {
      width: 700px;
      margin: 0 auto;
      }
      .katalog4 ul{
      margin-bottom: 10px;
      padding-left: 20px !important;
      display: inline-block;
      }
      .katalog4 a{
      font-size:14px;
      color:#0000CC;
      }
      .katalog4 img{
      float: left;
      border-radius: 10px;
      border: 2px solid #ccc;
      margin-right: 10px;
      }
      .katalog4 a:hover{
      color:#FF2B2B;
      }
      .katalog4 h3 a{
      font-size:18px;
      }
      .rubpiki h2{
      font-size:24px;
      font-weight:bold;
      text-align:center;
      text-decoration:underline;
      margin:10px 0 30px 0;
      }
      Ответить
      • Дмитрий:

        Спасибо за статью!
        А как отключить стандартный вывод записей в категориях? Они выводятся списком.

        Ответить
  55. Сергей:

    Возможно ли вывести название рубрики родительской, но исключить дочерние и одну рубрику с ID=1. Извините что не в тему немного.

    Ответить
  56. Инга:

    Подскажите, а есть плагин, который бы делал что-то подобное?

    Ответить
    • Виталий Кириллов:

      Такого плагина я не знаю.

      Ответить
  57. Михаил:

    Здравствуйте, Виталий.
    Не справляюсь, помогите, как изменить код что бы.
    у меня страницы и категории смешаны в гл.меню:
    Главная(с), В общем(к), Виды(к), Карта сайта(с), Контакты(с).
    ВИДЫ — это категория (родительская), в меню. Хочу что бы при открытии псевдо-страниы ВИДЫ, выводился каталог подкатегорий(их много около 50) без статей и что бы они были ссылками на статьи в этих подкатегориях.

    Ответить
  58. Михаил:

    Виталий, ответьте же, прошу.
    Я изучил АШТИМЭЛ, СИЭССЭС и ВОРДПРЕСС (Прикольно по русски их писать), а вот ПИЭЙЧПИ пока нет и в связи с этим не понимаю код. Не получается самому.
    Хочу свой блок запилить правда пока на денвере его допиливаю.
    Подскажите, Виталий, как модернизировать ваш код для того, что бы получилось выше описанное.
    Чтобы на странице выводились подкатегории (кликабельные) катологом с миниатюрами без постов, что бы кликнул на миниатюрку или на название подкатегории и выходит обычная страница с постами.

    Ответить
    • Виталий Кириллов:

      Михаил попробуйте этот, но поставьте Ваши классы:

      <h1><?php single_cat_title(); ?></h1>
      <?php if (have_posts()) : while (have_posts()) : the_post(); // Цикл записей ?>
      <div class="katalog">
      <?php if ( has_post_thumbnail() ): //проверяем если в записи миниатюры ?> 
      <ul>
      <li><div class="blok"><a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(235,190)); ?></a>
      <a class="silka" href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div></li>
      </ul>
      <?php else: //если миниатюр нет выводим заглушку?>
      <ul>
      <li><div class="blok"><img src="Путь до картинки заглушки" width="240" height="190" alt="zagluhka"/>
      <a class="silka" href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div></li>
       </ul>
      <?php endif;?>
      </div>
      <?php endwhile; // Конец цикла.
      else: echo '<h2>Извините, ничего не найдено...</h2>'; endif; // Если записей нет - извиняемся ?>
      Ответить
  59. Михаил:

    Или же ,
    я привязал рубрики к странице, как сделать, что бы на странице отображались эти рубрики?

    Ответить
    • Виталий Кириллов:

      Вам надо чтобы посты выводились или подрубрики? Что-то я Вас не понял…

      Ответить
  60. Андрей:

    А что делать есть wp не видит category.php, category-36.php и т.д. А использует index.php

    Ответить
    • Виталий Кириллов:

      Возможно в шаблоне есть функция, принудительно подключающая index.php. Других вариантов не вижу.

      Ответить
  61. Maxmu:

    Здравствуйте, скажите, а если нужно для двух, трех и более рубрик прописать
    в файле функций отдельное количество анонсов в отличии от всех остальных рубрик
    в постраничной навигации?

    в файле функций в этой строке (третья строка в Вашем примере)
    if ($query->is_main_query() && is_category(7))

    как прописать вторую рубрику? (через запятую после цифры «7» — не получается).

    Ответить
    • Виталий Кириллов:

      В смысле не получается?

      is_category(7, 8, 9)

      где «7, 8, 9» — id категорий.

      Можно так прописать:

      if ($query->is_category(7, 8, 9))

      Ответить
  62. Monk:

    Добрый день. Такой вопрос: имеется сайт с большим количеством рубрик, которые можно условно разделить на «основные» и «дополнительные». Каждая статья относится как минимум к двум рубрикам, по одной из обоих разделов. Нужно, чтобы на странице каждой «основной» рубрики находились ссылки на «дополнительные», при тыке на которые показывались бы статьи, относящиеся к обоим рубрикам одновременно. Такое возможно вообще?

    Ответить
    • Виталий Кириллов:

      В программировании нет ничего невозможного. В скором будущем выйдет статья «Миниатюры для категорий», где я собираюсь рассказать, как сделать каталог из подкатегорий. Следите за обновлениями.

      Ответить
      • Monk:

        Дело как раз в том, что подкатегорий там нет. Если бы были, то все было бы гораздо проще. Но их не делали, потому что тогда в каждой категории были бы одни и те же подкатегории, которые выводились бы на отдельных страницах.

        Ответить
  63. Дмитрий:

    Добрый день!
    Спасибо за труды, Ваша статья полезна.
    Основываясь на Вашем коде для категорий с дочерними категориями, запилил свой код, только вот пагинация не работет, перепробовал множество вариантов, но ни один не подошел, всегда выводятся одни и те же посты. Буду благодарен за помощь!
    Заранее спасибо!

    Ответить
    • Виталий Кириллов:

      Дмитрий Вы какой цикл wordpress используете?

      Ответить
      • Дмитрий:

        Приведу, код полностью:
        <?php
        $cat_args = array(
        'child_of' => 12,
        'orderby' => 'name',
        'order' => 'ASC'
        );
        $categories = get_categories( $cat_args );
        foreach ( $categories as $category )
        {
        $args = array(
        'numberposts' => 5,
        'category__in' => array( $category->term_id ),
        );

        $posts = get_posts( $args );
        if ( $posts )
        {
        echo '<h2 class="uk-margin-left uk-margin-top">' . $category->name . '</h2> ';
        foreach ( $posts as $post )
        {
        setup_postdata( $post );
        ?>
        <ul class="uk-margin-left uk-padding-remove">
        <li>
        <a data-link="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a><br/>
        </li>
        </ul>
        <?php
        }
        }
        }
        ?>

        Ответить
        • Виталий Кириллов:

          Дмитрий, некогда заняться Вашей проблемой. Как руки дойдут посмотрю, что можно сделать.

          Ответить
  64. Alex:

    Здравствуйте!
    Вот такой вопрос. Если у меня допустим 100 категорий и под каждую мне нужен свой шаблон. Создавать 100 файлов как-то не очень радует. Есть ли еще какой то вариант?

    Ответить
    • Виталий Кириллов:

      Alex, допустить, конечно, можно, что угодно, но надо реально смотреть на вещи. Смотря чем должны отличатся страницы категорий друг от друга…

      Ответить
      • Alex:

        Уникальный тайтл, заголовок h1 и текстовый блок.

        Ответить
        • Виталий Кириллов:

          Ну вот, ситуация проясняется. Alex, для этого не надо создавать шаблоны. Я как раз готовлю статью, думаю за неделю точно добью, которая будет называться «Свои заголовки title и h1 для категорий».
          Не могу ее выпустить уже пару месяцев. Ну раз заикнулся, думаю допишу. Подождите недельку…

          Ответить
          • Alex:

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

            Ответить
            • Виталий Кириллов:

              О том и речь.

              Ответить
  65. Маргарита:

    Доброго времени суток! Случайно попала на Ваш блог со статьей «шаблоны для категорий», полезная статья (особенно для меня), т.к я недавно открыла кулинарный сайт, а это, то что нужно для таких сайтов. Спасибо Вам!!! Еще меня интересует такой вопрос, наполнять рецептами сайт самой тяжеловато, не подскажите может есть какой то плагин (бесплатный) для WordPress, что бы посетители могли добавлять свои рецепты с фото самостоятельно или какое то программное решение наподобие Ваших шаблонов для категорий. С уважением Маргарита!

    Ответить
  66. Владимир:

    Здравствуйте. Вопрос немного не по теме, но близкий:

    Как реализовать РАЗНЫЕ мобильные меню для разных рубрик?
    То есть чтобы при нахождении пользователя в статье одной рубрики — при нажатии на «меню», выскакивало «меню-1», а при его нахождении в статье другой рубрики и клике на «меню», выскакивало другое меню.

    Для стационарных компов различное меню у меня сделано так (в файле single.php):
    if (in_category( array( ‘odin’, ‘dva’, ‘tri’) )) {
    include(TEMPLATEPATH.’/header-1.php’);
    } elseif (in_category( array( ‘chetyre’, ‘pyat’, ‘shest’) )) {
    include(TEMPLATEPATH.’/header-2.php’);
    } else {
    get_header();

    Как СЕЙЧАС реализовано мобильное меню:
    в хедере есть строка
    <div id="mob">
    <a data-link="#mobilemenu"> <span>&nbsp; </span></a>
    </div>

    А в футере джквери:
    <div id="mobilemenu">
    <?php $menuClass = 'mobilemenu';
    $secondaryNav = '';
    if (function_exists('wp_nav_menu')) {
    $secondaryNav = wp_nav_menu( array( 'theme_location' => 'secondary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'echo' => false ) );
    };
    if ($secondaryNav == '') { ?>
    <?php }
    else echo($secondaryNav); ?>
    </div>

    Вероятно, нужно где то прописать так, чтоб в консоли/внешний вид/меню
    внизу, где «настройки меню» — «показать местонахождение» — было несколько чекбоксов для мобильное меню-1, мобильное меню-2 и т.д.

    Виталий, Вы же умный дядька, придумайте решение?

    Ответить
  67. Aziz:

    Здравствуйте вы не могли бы мне помочь у моего сайта есть одна проблема когда добавляешь категорию объявление все категории показывает и категории и подкатегории.Я хочу чтобы по порядку всё было.Когда нажал категорию появился подкатегории вот так я хочу помогите мне буду рад.
    Жду вашего ответа 🙂

    Ответить
  68. Константин:

    Добрый день! Пытаюсь, чтобы в каталоге статей, каждая статья была обернута в тег «cтатья» и чтобы текст в «зе эксцерпт» был обернут в тег «параграф». Помогите пожалуйста

    Код заключается в следующем:

    Вызываю query_posts (куери_пост). Внутри этого цикла выводятся статьи из конкретных рубрик. В каждой статье есть миниатюра, тайтл c cслкой и the_excerpt (эксцерпт).

    Ответить
  69. Константин:

    Наконец-то понял, как отправить вам код:

    <section class="articles-catalog">
    <?php query_posts('cat=5');
    while (have_posts()) : the_post();?>
    <article>
    <h2><a data-link="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <div class="thumbnail"><?php echo get_the_post_thumbnail(); ?></div>
    <p><?php the_excerpt(); </p>
    endwhile;
    wp_reset_query();?>
    </article>
    </section>

    Ответить
  70. Влад:

    Как мне убрать описание, под картинкой?

    Ответить
  71. Timur:

    в шаблоне category.php необходимо перед постами вывести произвольный текст, но выводит почему-то текст определенной статьи, как это изменить?

    Ответить
  72. Кирилл:

    Добрый день. Как можно осуществить замену названия одной рубрики на картинку?

    Ответить
  73. Андрей:

    Здравствуйте, очень прошу помочь, уже который день не могу решить задачу, не хватает знаний, надо вывести на странице категории подкатегории с записями, чтобы получлось так
    Категория 1
    подкатегория 1
    записи подкатегории 1
    подкатегория 2
    записи подкатегории 2
    все что получилось вывести сейчас это
    Категория 1
    подкатегория 1
    все записи родидельской категории
    подкатегория 2
    все записи родительской категории
    ваш пример Шаблон для категорий с дочерними категориями похоже на то что надо но у меня почему то не работает, вообще не выводит, айди категории заменял, подскажите пожалуйста как сделать чтобы выводились посты только подкатегории?

    Ответить

Оставить комментарий

Внимание комментатор! Прежде чем вставить: HTML, JavaScript или PHP код в свой комментарий, преобразуй его в html сущность!

Subscribe without commenting

» Подписаться на комментарии по RSS