• Решено Levskaya

    (@levskaya)


    Люди, возникла такая проблема: У меня много категорий и в них свои подкатегории. Как сделать так, чтобы в одном виджете выводилась только одна родительская категория со своими подкатегориями, а в другом — другая? А то у меня выводится все в куче. Это ущербность темы, или так оно у всех? Надеюсь, понятно, о чем я говорю?

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Модератор Юрій

    (@yube)

    Это ущербность виджета «Рубрики».

    Автор Levskaya

    (@levskaya)

    И что с этим делать? Может быть, есть какие-нить плагины на этот случай?

    Автор Levskaya

    (@levskaya)

    Нашла плагин 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>

    Но это, кажется, совсем бред… Выводится все как хочет и где хочет.
    В документации сказано, что нужно добавить фильтр. А как?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Наверное, 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 нужно вписать идентификатор родительской рубрики.
    Таким же образом можно оформить блок «Мои университеты».

    Atrax

    (@atrax)

    Ethical engineer

    Создавая кучу циклов в сайдбаре, вы рискуете в конце концов перегрузить свою тему настолько, что придется оптимизировать. Если все эти циклы выйдут за пределы штатных 30 секунд апача, сайт просто «накроется»…

    На будущее…

    Автор Levskaya

    (@levskaya)

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

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

    Atrax

    (@atrax)

    Ethical engineer

    Э… вы меня прямо обезоружили таким вопросом 🙂 ладно, попробую…

    Apache это веб-сервер, на котором крутится ваш сайт. Он выдает какое-то время и объем оперативной памяти на выполнение любой страницы. Если у вас слишком много операций — вроде циклов внутри одной страницы или много плагинов — и вы превышаете этот лимит, страницы просто перестают показываться. Лимиты определяют хостинг-провайдеры. Файлы удалять не поможет, потому что дело не в самих файлах, а в тех из них которые исполняются при вызове. Это если на пальцах… а вообще, поищите в интернете какие-нить учебники для начинающих, матчасть надо знать. Чтобы не было сюрпризов.

    Автор Levskaya

    (@levskaya)

    Ну про сервер я знаю. Кажется… 🙂 Только что апач и сервер — это одно и то же — вот открытие! Спасибо 🙂

    Автор Levskaya

    (@levskaya)

    Кстати, и про это:

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

    Как делать оптимизацию, добиваться быстрой загрузки сайта? Я имею ввиду, есть ли какие-то особые способы конкретно для WP, или это для любого сайта одинаковый процесс?

    Atrax

    (@atrax)

    Ethical engineer

    Это не совсем одно и то же на самом деле 🙂 хотя и близко. Сервер — это железка, компьютер. А программа для того, чтобы «крутить» на ней сайты, тоже называется для простоты «сервером» (строго говоря, это все-таки «служба HTTP» в Windows, или «демон HTTP» в UNIX). Так вот, Apache — это «HTTP daemon» для UNIX, таких в Сети большинство.

    Процесс оптимизации «вообще» — это уменьшение трафика за счет корректного написания кода, «облегчения» картинок и собственно оптимизации (есть такое модное слово «рефакторинг») программного кода.

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

    Как-то так…

    Автор Levskaya

    (@levskaya)

    Ок. Спасибо, что так все понятненько расписали. Тогда еще один самый последний вопрос 🙂 У меня на сайте очень много видео — по несколько окошек на пост. При загрузке странички это, ессно, ее тормозит. Но ведь сами эти видео находятся не на моем сервере. Значит, мой сайт они не нагружают? И ничего страшного, что их так много. Да?
    А если, к примеру, на сайт придет куча народу (надеюсь :)) и они все начнут смотреть эти видео? Я думаю, сайт не должен от этого загнуться… Я правильно думаю?

    Atrax

    (@atrax)

    Ethical engineer

    Да.
    Загибаться должен YouTube или где у вас видео хранится.
    YouTube выдержит.
    🙂

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Как показать разные категории в разных виджетах?» закрыта для новых ответов.