Очень часто веб-администраторы сталкиваются с необходимостью вывода виджета по заранее определенному условию. Так, например, календарь иногда нужен лишь на главной странице. Как же ограничить вывод виджета? Самым простым решением для большинства разработчиков кажется регистрация дополнительного сайдбара и разрешения его вывода только главной странице. Однако здесь существует серьезное препятствие – абсолютное большинство виджетов существуют в единственном экземпляре. Только для трех стандартных виджетов разрешается создание копий: рубрики, текстовый и RSS.
Для того чтобы успешно решить задачу, необходимо сначала понять, как виджеты выводятся в WordPress. Некоторые всерьез считают их какими-то «черными ящичками», однако на самом деле это обычные php-функции, которые вызываются автоматически после активации в админ-панели.
К особенностям виджетов можно также отнести и метод их настройки. Причем следует заметить, что изначально такой способ настройки планировалось распространить для хранения настроек всех модулей. Настройка виджетов такова:
• Существует таблица базы данных, хранящая пару «ключ=значение». В качестве «значения» могут выступать данные разных типов;
• Для настройки виджета используется отдельная функция. Функция использует и модифицирует настройки виджета;
• Функция виджета, непосредственно выводящая данные на сайте, считывает настройки из базы, а затем определяет, каким образом должен осуществляться вывод.
Это довольно упрощенный алгоритм. Для работы с базой данных WordPress предоставляет вспомогательные функции. Поэтому функцией вместо SQL-запроса используются две другие: «get_option(‘ключ’)», получающая данные по указанному ключу и «update_option(‘ключ’,$options)», обновляющая данные.
Также при работе с настройками используется кэширование. Это позволяет снизить их требования к ресурсам. Поэтому хотя и копировать виджеты нельзя, их функции можно использовать неограниченное количество раз. Однако значение страницы «Виджеты» в панели администратора несколько изменяется. Теперь на ней устанавливаются сами виджеты, но их расположение на сайдбаре не повлияет на вывод на веб-странице.
Таким образом, если вы научитесь в нужном вам порядке контролировать, как выводятся виджеты для WordPress, скачать и установить их не составит труда.