Как показать разные категории в разных виджетах?
-
Люди, возникла такая проблема: У меня много категорий и в них свои подкатегории. Как сделать так, чтобы в одном виджете выводилась только одна родительская категория со своими подкатегориями, а в другом — другая? А то у меня выводится все в куче. Это ущербность темы, или так оно у всех? Надеюсь, понятно, о чем я говорю?
-
Это ущербность виджета «Рубрики».
И что с этим делать? Может быть, есть какие-нить плагины на этот случай?
Нашла плагин Peer Categories. Нарисовала в сайдбаре такую бяку:
<div class=»sidebar_header»>Что все они делают?</div>
<div class=»sidebar_center»>-
<?php if ( $posts = get_posts(‘numberposts=10’) ) : ?>
<?php peer_categories(‘
‘); ?><?php foreach ( $posts as $post ) : ?>
<?php endforeach; ?>
<?php endif; ?></div>
<div class=»sidebar_bottom»></div>
<div class=»sidebar_header»>Мои университеты</div>
<div class=»sidebar_center»>-
<?php if ( $posts = get_posts(‘numberposts=10’) ) : ?>
<?php peer_categories(‘
‘); ?><?php foreach ( $posts as $post ) : ?>
<?php endforeach; ?>
<?php endif; ?></div>
<div class=»sidebar_bottom»></div>Но это, кажется, совсем бред… Выводится все как хочет и где хочет.
В документации сказано, что нужно добавить фильтр. А как?Наверное, Peer Categories не подходит — он выводит рубрики только для текущей записи. Можно воспользоваться функцией wp_list_categories():
<div class="sidebar_header">Что все они делают?</div> <div class="sidebar_center"> <ul> <?php wp_list_categories('title_li=&child_of=7'); ?> </ul> </div>
Вместо 7 нужно вписать идентификатор родительской рубрики.
Таким же образом можно оформить блок «Мои университеты».Создавая кучу циклов в сайдбаре, вы рискуете в конце концов перегрузить свою тему настолько, что придется оптимизировать. Если все эти циклы выйдут за пределы штатных 30 секунд апача, сайт просто «накроется»…
На будущее…
Спасибо, Сергей. Как всегда, все оказалось проще, чем я думаю 🙂
Atrax, а кто такой этот апач? он следит только за тяжестью сайдбара или вообще за всем подряд? И как узнать, насколько мой сайт уже тяжелый?
Я использую много плагинов, но не знаю, как сделать так, чтобы они не утяжеляли сайт. Я удаляю из них все лишнее типа readme и пр., но ведь этого недостаточно?Э… вы меня прямо обезоружили таким вопросом 🙂 ладно, попробую…
Apache это веб-сервер, на котором крутится ваш сайт. Он выдает какое-то время и объем оперативной памяти на выполнение любой страницы. Если у вас слишком много операций — вроде циклов внутри одной страницы или много плагинов — и вы превышаете этот лимит, страницы просто перестают показываться. Лимиты определяют хостинг-провайдеры. Файлы удалять не поможет, потому что дело не в самих файлах, а в тех из них которые исполняются при вызове. Это если на пальцах… а вообще, поищите в интернете какие-нить учебники для начинающих, матчасть надо знать. Чтобы не было сюрпризов.
Ну про сервер я знаю. Кажется… 🙂 Только что апач и сервер — это одно и то же — вот открытие! Спасибо 🙂
Кстати, и про это:
Я использую много плагинов, но не знаю, как сделать так, чтобы они не утяжеляли сайт.
Как делать оптимизацию, добиваться быстрой загрузки сайта? Я имею ввиду, есть ли какие-то особые способы конкретно для WP, или это для любого сайта одинаковый процесс?
Это не совсем одно и то же на самом деле 🙂 хотя и близко. Сервер — это железка, компьютер. А программа для того, чтобы «крутить» на ней сайты, тоже называется для простоты «сервером» (строго говоря, это все-таки «служба HTTP» в Windows, или «демон HTTP» в UNIX). Так вот, Apache — это «HTTP daemon» для UNIX, таких в Сети большинство.
Процесс оптимизации «вообще» — это уменьшение трафика за счет корректного написания кода, «облегчения» картинок и собственно оптимизации (есть такое модное слово «рефакторинг») программного кода.
Для WordPress — это уменьшение количества плагинов или выбор из них более эффективных по скорости и потребляемым ресурсами, а также оптимизация php-кода шаблонов. Например, ваше создание нескольких циклов приводит к более долгой генерации страницы, чем если бы вы обошлись без них. Но без них обойтись тоже не всегда возможно. В общем, оптимизация — это искусство поиска золотой середины.
Как-то так…
Ок. Спасибо, что так все понятненько расписали. Тогда еще один самый последний вопрос 🙂 У меня на сайте очень много видео — по несколько окошек на пост. При загрузке странички это, ессно, ее тормозит. Но ведь сами эти видео находятся не на моем сервере. Значит, мой сайт они не нагружают? И ничего страшного, что их так много. Да?
А если, к примеру, на сайт придет куча народу (надеюсь :)) и они все начнут смотреть эти видео? Я думаю, сайт не должен от этого загнуться… Я правильно думаю?Да.
Загибаться должен YouTube или где у вас видео хранится.
YouTube выдержит.
🙂
- Тема «Как показать разные категории в разных виджетах?» закрыта для новых ответов.