Убрать (поставить) виджет с определенной страницы WordPress

14 декабря 2012 | Автор: zkzakhar | Теги: , ,

Только что нашел очень простой, и одновременно необычайно полезный плагин, что бы сделать свой сайдбар разнообразнее: на некоторых страницах убрать ненужные виджеты, на некоторых добавить, а на некоторых и вовсе все удалить, что бы проще смотрелось (иногда и такое требуется). Представляю вам плагин Widget Logic.

Уже давненько писал о подобных вещах: убрать виджеты с главной страницы, если сайдбар прописан кодом и убрать виджеты, если сайдбар выстраивается через панель «виджеты» в админке wordpress (http://zkzakhar.com/dinamichnyj-sidebar.html). Сейчас пойдет речь о модернизированном варианте второй ссылки (через админку сайта).

Предыстория. Когда-то мне требовалось убрать блогролл со всех страниц сайта кроме морды, и нашел я для этой цели плагин Daiko’s Text Widget plugin и вполне он меня устроил. Грешок один виден был невооруженным глазом, хотя и незначительный — что бы установить его, требуется грузить файлы на FTP, а потом активировать через браузер. Не каждому это понравится, некоторые могут, банально, доступа к фтп не знать/не помнить. Гораздо удобнее через браузер «Плагины» — «Добавить новый», вбить в поиск что надо, и понеслась. Но сегодня столкнулся с другим багом, более серьезным — плагин может делать фокусы лишь с одним виджетом, а это категорически не вписывалось в мой сценарий. Поэтому я нашел замену.

Всё проще пареной репы: в поиск плагинов вбиваем «Widget Logic», устанавливаем (он первый в выдаче), активируем и забываем. Поменялась лишь одна вещь: теперь, под каждым виджетом появилось дополнительное поле, выглядит вот так

Здесь я прописал «is_home()», что означает показ этого виджета лишь на главной странице сайта. Кто разбирается в коде wp — смекнул что к чему, кто не разбирается, тому следующий список:

  • is_home() — отображать только на главной странице
  • !is_home() — отображать на всех страницах, кроме главной
  • is_single() — отображать только на страницах постов
  • is_page() — отображать только на страницах
  • is_archive() — отображать только на страницах архива (категории, тэги)
  • is_search() — отображать на страницах результата поиска

Если нужно на определенных страницах, то код: is_page(‘page1’) || is_page(‘page2’), где page1, page2 — выбранные вами страницы.

Всё просто до безобразия. Теперь мой арсенал плагинов претерпел небольших изменений, и я использую Widget Logic.

Все мы создаем сайты, что бы в будущем они приносили деньги (или удовлетворяли какие-то личные потребности, что есть реже). В дальнейшем кто-то со своими ресурсами расстается, продавая их, а кто-то продолжает развивать. Кто решил идти по первому пути, интересуется, по сути, продажей интернет бизнеса, ведь сайты — бизнес. Если вы относитесь к этой группе, то читайте, быть может что-то найдете новое и полезное.

Захар.

[vk-share-button]