Категории и подкатегории в sidebar

для wordpress 1.5.x — 2.0.x

Что сделать, чтобы в sidebar ссылки на категории отображались так:

категория 1
— подкатегория 1.1
— подкатегория 1.2
— подкатегория 1.3
категория 2
— подкатегория 2.1
— подкатегория 2.2

В коде все это хозяйство выглядит так:

<ul>
  <li>категория 1
       <ul class="children">
           <li>подкатегория 1.1</li>
           <li>подкатегория 1.2</li>
           <li>подкатегория 1.3</li>
       </ul> 
  </li>
  <li>категория 2
       <ul class="children">
           <li>подкатегория 2.1</li>
           <li>подкатегория 2.2</li>
       </ul> 
  </li>
</ul>

Решение:
WordPress для подкатегорий предусмотрел специальный класс, просто добавьте в style.css своей темы

.children

и оформляйте ссылки на подкатегории (они же вложенные рубрики) как душе угодно!
Не забывайте, что ссылки на категории/подкатегории WordPress выводит в виде списков (ul, li), то есть — ul class="children"

ДЛЯ ТЕХ, КТО В ТАНКЕ, НА БИС: WORDPRESS САМ! ВЫВОДИТ UL CLASS="CHILDREN" ДЛЯ ПОДКАТЕГОРИЙ. ВСЁ, ЧТО ВАМ НУЖНО СДЕЛАТЬ — ПРОПИСАТЬ КЛАСС .children В style.css СВОЕЙ ТЕМЫ.

А также:
Для того, чтобы отображались вложенные рубрики (подкатегории) под родительскими категориями (как в примере выше), открываем sidebar.php, ищем <?php wp_list_cats(); ?> и изменяем его следующим образом:

<?php wp_list_cats('hide_empty=0&hierarchical=1'); ?>

hide_empty=0 показываем ссылки на пустые категории (в которых еще нет постов)
hierarchical=1 отображаем подкатегории под родительской категорией

Читаем Кодекс Вордпресса: wp_list_cats
Не знаете, что такое класс в css и что с ним делать? Учим css, подробно про ul

для wordpress 2.1.x и ВЫШЕ

В wp версии 2.1.0 и выше вместо wp_list_cats используется wp_list_categories.
Порядок действий тот же.

——————————————————————
——————————————————————
UPD
Как отсортировать рубрики в sidebar

На мjём сервере при установки WP 2.0.9 (RUS) выдается ошибка:
Warning: require_once(ABSPATH/wp-admin/admin-functions.php) [function.require-once]: failed to open stream: No such file or directory in /htdocs/wordpress-rus/wp-admin/upgrade-functions.php on line 3

Fatal error: require_once() [function.require]: Failed opening required ‘ABSPATH/wp-admin/admin-functions.php’ (include_path=’.:/usr/share/php’) in /htdocs/wordpress-rus/wp-admin/upgrade-functions.php on line 3

Не подскажите что делать? :/

К чему Вы это написали в этом топике?
Пишите в ветку http://forum.maxsite.org/viewforum.php?id=1

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

Как-то тихо… -) Ладно, тем более, что немного не разобрался с проблемой… все происходит так:
При загрузке любой страницы не видны 3 верхних пункта Рубрикатора вне зависимости от наличия публикаций:
РУБРИКА
– подрубрика 1
– подрубрика 2

все нижеследующие видны нормально.

При наведении курсора или при прокрутке они становятся видными, но при перезагрузке все повторяется. Функциональность при этом не нарушена.

И где собака порылась, кто-нить в курсе?

посмотрите, какие стили используют эти невидимые категории
возможны, они уже visited – и поэтому отображаются тем же цветом, что и фон
в общем, скорее всего, проблема в CSS

Цвет ссылок на категории совпадает с цветом фона. Как и сказал nachberlin, нужно проверить css. Но к чему ваша проблема в этом разделе?

offtop
nachberlin — это она 🙂

В CSS всё нормально, т.к. не видны лишь первые 3 строки (и то лишь пока по ним не проведешь курсором, даже кликать необязательно, или не уведешь с экрана прокруткой) остальные рубрики видны всегда без проблем. Сомневаюсь, чтобы в CSS под первые 3 рубрики был отдельный класс или стиль…

Да, вот еще один момент: если оставить только рубрики без подрубрик, то все нормально. Как только ставишь хотябы 1 подрубрику начинается глюк.

Нереально ответить на этот вопрос – никто из нас не телепат.
Дайте ссылку на сайт что ли. Если сайт пока локальный – сохраните страницу в качестве простой html-ки, выложите куда-нибудь, дайте ссылку. Я продолжаю думать, что дело в CSS.
И в любом случае – здесь не место для таких вопросов, идите в правильную ветку форума и опишите там проблему.

Извините ребята… сайт еще на локалке. Но тут похоже дело в кривой теме (португальская-)). -( Много времени потратил на локализацию и настройку и все впустую… -(
Проверил эту функцию на другой теме – все работает нормально.

А как сделать чтобы выводилось дерево только одной нужной категории?

Т.е. у меня есть:
категория 1
— подкатегория 1.1
категория 2
— подкатегория 2.1

А нужно
категория 1
— подкатегория 1.1

Понимаю что нужно прописать что-то типа cat=1 но не пойму где и что именно 🙂

<?php wp_list_cats('hide_empty=0&hierarchical=1&child_of=8'); ?>

где 8 — это id рубрики, дочерние категории которой нужно вывести. кажется так

Заметил что в некоторых шаблонах .children нету. Как его убрать? Чтобы подкатегории были под категориями.

Разобрался 🙂

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

Как отсортировать рубрики в sidebar:

Порядок вывода категорий в sidebar (WordPress)


У Макса есть русиф. плагин:
http://maxsite.org/my-category-order

у меня функция в теме прописана так <?php wp_list_cats(‘ sort_column=id&optioncount=1&hierarchical=0’); ?>
и никакая замена не помагает, ошибка выдается

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

Народ! Я практически сломал свой мозг… Помогите. Проблема такова:

Имеем:

категория 1 (нет постов)
— подкатегория 1.1 (есть посты)
— подкатегория 1.2 (есть посты)
— подкатегория 1.3 (есть посты)
категория 2 (нет постов)
— подкатегория 2.1 (есть посты)
— подкатегория 2.2 (есть посты)

Ка сделать, чтобы у меня на странице отображались ТОЛЬКО

Категория 1
Категория 2

Ну, а щелкая по родительской категории – получался список дочерних (с этим проблем вроде бы нет)

<?php wp_list_cats(‘hide_empty=0&children=0’); ?> не пашет 🙁

да и вобще, параметр children не работает совершенно, по-моему.

Согласен…как решить эту проблему? Чтоб отображались тока категории а подкатегории только по клику на Категории выводились?

Тут нужен плагин, какой-нибудь такой:
http://www.silpstream.com/blog/wp-dtree/
http://www.webspaceworks.com/resources/wordpress/31/

Ну на самом деле проблему решил путем написания собственного плагина 🙂
а вот этот http://www.silpstream.com/blog/wp-dtree/ очень даже интересный!

Поднимаю тему, ибо как бы я не пытался, структуру

для wordpress 1.5.x — 2.0.x
категория 1
  — подкатегория 1.1
  — подкатегория 1.2
  — подкатегория 1.3
категория 2
  — подкатегория 2.1
  — подкатегория 2.2

------------------------------------------------------------------
------------------------------------------------------------------
UPD
Как отсортировать рубрики в sidebar

я сделать не смог. Версия движка – 2.2.3, тема – Vertigo Blue, предпросмотр здесь http://blogstyle.ru/live/index.php?wptheme=Vertigo+Blue+3Column, скачать можно здесь http://blogstyle.ru/download-manager.php?id=88
Пробовал всё, что описано в теме, да и по поиску ничего не нашёл. Вполне возможно, что причина в том, что я полный ламер. Или в том, что версия движка иная, чем с сабжевой теме. В общем народ, помогите советом, пожалуйста.

Совет прост: читать внимательно первое сообщение в этом топике. править код Темы и style.css в папке Темы.

Я уже тоже голову сломал, но так и не смог сделать… 🙁
Проблема такая: при добавлении каждой новой страницы приходится лезть в настройки сайдбара страницы и там прописывать id страницы, которую не надо показывать в сайдбаре… Согласитесь, жутко неудобно при создании каждой новой странице так по-дурацки действовать.

А можно ли сделать так, чтобы с сайдбаре отображались только рубрики и подрубрики ,причем речь идет не о категориях и постах, а о страницах. Можно так сделать?

так… а я ведь давно написал в ФАКАХ свою статью про это, можно было поиск раскурить:
Подкатегории в WordPress. Совмещение с плагином MyCategoryOrder

в том-то и дело, что это для категорий постов, а нужно для страниц!
Кстати, все сделал как описано в статье – результат:

WordPress database error: [Unknown column ‘cat_order’ in ‘order clause’]
SELECT * FROM wp_categories WHERE cat_ID > 0 ORDER BY cat_order ASC

Версия плагина не подходит под версию WordPress.

Спасибо за сообщение, но у меня не получается.
Нужно меню вида

Категория1

– подкатегория1.1
– подкатегория 1.2
– подкатегория 1.3

Категория 2

– подкатегория2.1
– подкатегория 2.2
– подкатегория 2.3

Категория 3

– подкатегория3.1
– подкатегория 3.2
– подкатегория 3.3

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

И еще у меня такая проблема. Когда я пишу сообщение, и ставлю галочку, что оно опубликовано в подкатегории, но там ни фига не публикуется, а только в главной категории. А при нажатии на подкатегорию, ошибка 404 ничего не найдено. Как правильно публиковать?

Вы самый первый пост в ветке читали? Всё сделали, как там написано?
"Спинным мозгом чую – блондинка" 🙂

Ну на самом деле проблему решил путем написания собственного плагина :)

Может поделитесь плагином? А то проблема действительно насущная, а реализовать не получается

У меня в рубрике вообще подрубрики не создаются 🙁

прописал в ксс что бы показывался рисунок , но ничего совершено не показует

Как отсортировать рубрики в sidebar:


Порядок вывода категорий в sidebar (WordPress)
У Макса есть русиф. плагин: http://maxsite.org/my-category-order

Вопрос о сортировке категорий встал довольно остро и вчера вечером опробовал этот плагин.

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

2. Стандартный плагин для WP 2.3.3 с рекомендацией прописей от Soniki после активации со стороны панели управления вид имел самый серьёзный и категории перетаскивались мышкой прямо как настоящие. Однако, на сайд-баре обнаружилась стоящая в печальном одиночестве всего одна(!) категория из почти десятка имеющихся в наличии и ни на какие мои телодвижения(танец живота, ламбаду и даже лезгинку) не реагировала.

Вернул всё на место и пошёл спать.
Во сне виделся работающий плагин в переводе на суахили но сортирующий категории исключительно на фарси и урду…

Вот что забавно, в таблице term_relationships есть поле term_order, а механизма управления оным я не заметил.

Чуть подробнее, пожалуйста!

Подробнее.
/wp-admin/includes/schema.php
CREATE TABLE $wpdb->term_relationships (
object_id bigint(20) NOT NULL default 0,
term_taxonomy_id bigint(20) NOT NULL default 0,
term_order int(11) NOT NULL default 0,
PRIMARY KEY (object_id,term_taxonomy_id),
KEY term_taxonomy_id (term_taxonomy_id)
) $charset_collate;

/wp-includes/taxonomy.php

1.
else if ( ‘term_order’ == $orderby )
$orderby = ‘tr.term_order’;

2.
if ( ! $append && isset($t->sort) && $t->sort ) {
$values = array();
$term_order = 0;
$final_term_ids = wp_get_object_terms($object_id, $taxonomy, ‘fields=tt_ids’);
foreach ( $term_ids as $term_id )
if ( in_array($term_id, $final_term_ids) )
$values[] = $wpdb->prepare( "(%d, %d, %d)", $object_id, $term_id, ++$term_order);
if ( $values )
$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join(‘,’, $values) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)");
}

И всё.

И всё…

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

С schema.php разобрался и заменил на указанную пропись.

А с taxonomy.php, дело обстоит хуже. Не нашёл что заменить или куда вставить, увы…

Что заменили? На что? Зачем?

Подправил мой файл schema.php. Привёл к виду показаному в Вашей прописи. Считал, что это подсказка для исправления ситуации.

Да нет же, это упоминания поля term_order в скриптах движка. И писал я к тому, что в движке заложена возможность, но реализована она через плагин. Странно это.

А помочь могу только банальным советом почитать readme.txt.

Кстати, schema.php – это "болванка" для создания базы.

За добрый, хотя и банальный совет, в любом случае, спасибо.
Значит, не судьба…

Здравствуйте!
Возникла следующая проблема:
при использовании <?php wp_list_cats(‘hide_empty=0&hierarchical=1’); ?> для создание выпадающего меню в sidebar, первая строка списка дочерних категорий отображается пустой, а за ней уже следует полный их список. Проблема не в стилях.
Подскажите, пожалуйста, с чем это может быть связано.
ЗЫ. PHP только осваиваю

Люди, простите за тупой вопрос. Я уже создавал тему:http://forum.maxsite.org/viewtopic.php?pid=43735#p43735.
Есть такая проблема. Я делал выпадающее меню. Причем без помощи дерева, а просто. Наводя на ссылку, выпадает список покатегорий определенной категории. Если использовать chil_of, то что мне туда вводить? Как мне узнать id категории? Использую WP 2.7! Срочно надо..

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

облазил все, но ничего не нашел. на кодексе есть описание
http://codex.wordpress.org/Template_Tags/wp_list_pages

странно, что этот код не работает вообще

wp_list_pages('child_of=2');

этот работает. но не в sidebar.php, а только в page.php

 
  global $id;
  wp_list_pages("title_li=&child_of=$id&show_date=modified&date_format=$date_format");

http://helen.edu.ee/blog/lasteaed/
что с этим делать?

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