Привет друзья! Недавно делал сайт на WordPress и столкнулся с задачей отображения на каждой странице определенных виджетов. Другими словами, нужно было сделать так, чтобы при открытии разных страниц сайта для каждой из них в сайдбаре выводились определенные виджеты.
Был конечно выход для каждой страницы создать свой шаблон и выводить в нем нужные виджеты, но огромное количество файлов останавливало, так как страниц на сайте много и создавать для каждой свой шаблон как-то не целесообразно.
Хотелось сделать все кодом, чтобы не нагружать сайт различными плагинами, но ничего путного не выходило, постоянно вылазили какие-то недостатки. Решил нырнуть в паутину, погуглил немного, но тоже ничего стоящего не нашел.
Как же быть? И тут мне попался довольно интересный и самое главное легкий плагин, который в полной мере решал мои задачи. Это плагин Widget Logic. Протестировал данный плагин и решил его оставить. Плагин добавляет в виджеты дополнительное поле, в которое можно вписывать условные операторы WordPress или код PHP. На деле все это выглядит так:
Скачать данный плагин можно на офсайте вордпресс здесь. Установка не вызывает никаких трудностей, а если вы не знаете как установить плагин, то можете ознакомиться с подробной инструкцией на моем блоге.
Как же пользоваться данным плагином? Все довольно просто. После установки никаких настроек производить не нужно, переходите непосредственно к виджетам, выбираете любой и в поле (выделил на рисунке выше) вписываем нужную нам команду-оператор.
Вот основные параметры опрераторов:
- is_home () — показывать только на главной странице
- !is_page (‘10’) — показывать на всех страницах, кроме страницы 10.
- is_single () — показывать только на страницах с постами (только, когда откроете ту или иную статью, увидите виджет)
- is_page () — аналогично предыдущему, виджет будет виден лишь на страницах блога
- is_search () — показывать на странице выдачи поисковых результатов
- is_archive () — исключительно в архиве статей
- !is_home () — везде, кроме главной страницы
- is_admin () — будут видны лишь админу\админам блога
Если вам нужно указать, к примеру, несколько страниц, на которых виджет должен отображаться или нет, то тогда вписываете операторы через разделитель вот так:
is_page (‘10’)||is_page (‘20’)
В это случае виджет будет выводиться в сайдбаре на страницах ID которых 10 и 20.
Надеюсь понятно что и как нужно делать. Настройки виджета можно расширить и вы их можете найти в низу страницы «Виджеты» в панели управления сайтом:
- Add ‘widget_content’ filter – при активации можно с помощью фильтров управлять отображением виджетов, к примеру, добавить код для дизайна
- Use ‘wp_reset_query’ fix — вызывает функцию wp_reset_query перед запуском виджетов, когда тема или некий плагин вносят изменения в логику работы системы, например, когда is_home отдает значение False на домашней странице блога.
- Load logic – проверка логики в виджетах при загрузке темы или создании header.
Более подробную информацию о настройке можете почитать в закладке Other Notes на официальной странице плагина, но все это нужно для более продвинутого использования плагина, а для простых задач как у меня достаточно просто вписать нужное условие в дополнительное поле при настройке виджета.
На этом у меня все. Надеюсь все понятно, теперь вы сможете управлять виджетами на своем сайте и данный плагин виджетов поможет вам выводить определенные виджеты для каждой страницы.
Как Вам плагин? Оставьте свой отзыв в комментариях, а если возникнут вопросы, не стесняйтесь спрашивайте, по возможности отвечу и помогу.
С уважением, Андрей Юрченко
Спасибо, совершенно ничего сложного как оказалось нет, установила виджет к себе за пару минут, всё работает прекрасно!
Всегда пожалуйста. Обычно с простыми плагинами не возникает никаких проблем-легко и быстро устанавливаются и настраиваются. Но, от плагинов лучше избавляться и заменить их встроенным кодом. Довольно много таких решений можно найти на моем блоге.
Будут вопросы или возникнут трудности-пишите, всегда помогу.
Простое решение этой проблемы — плагин Conditional Widgets . Этот плагин добавляет опции на каждой панели виджетов, где вы можете выборочно показать или спрятать виджет в определенных местах своего сайта. Например, вы можете спрятать виджет последних записей на главной странице и продолжить его отображать на отдельных страницах или страницах архива. Вы можете отключить виджет на некоторых страницах или создать полностью другой набор виджетов для каждой части сайта.
Оба плагина решают приблизительно одинаковые задачи