WordPress: Создаём виджет (часть 2 из 3-х)
21 октября, 2008Метки: WordPress
Большинство виджетов использует параметры, которые можно изменять в окне настройки виджетов. В прошлый раз мы создали простой виджет, и пришло время сделать его настраиваемым. О чём и расскажу в этой статье.
Как обычно открываем свой любимый текстовый редактор с поддержкой UTF-8 и загружаем в него файл с нашим виджетом.
Отлично. Что же нам необходимо сделать, чтобы наш виджет стал настраиваемым? Всё очень просто нам надо добавить функцию настройки виджета и внести изменения в вывод виджета, для того, чтобы учитывать наши настройки. Мы сделаем настраиваемой надпись, выводимую в заголовке нашего виджета. Начнём мы с функции настройки.
<?php
function dm_example_widget_control() {
$options = $newoptions = get_option('dm_example_widget');
if ($_POST["dm-example-widget-submit"]){
$newoptions['title'] = strip_tags(stripslashes($_POST["dm-example-widget-title"]));
}
if ($options != $newoptions) {
$options = $newoptions;
update_option('dm_example_widget', $options);
}
$title = attribute_escape($options['title']);
echo '<p><label for="dm-example-widget-title">Заголовок<input class="widefat" id="dm-example-widget-title" name="dm-example-widget-title" type="text" value="'.$title.'" /></label></p>';
echo '<input type="hidden" id="dm-example-widget-submit" name="dm-example-widget-submit" value="1" />';
}
?>
Сначала функция считывает подмножество настроек виджета. Далее идёт строчка, производящая сохранение настроек или их создание, если они ещё не созданы. Перед выводом необходимо заменить одинарные кавычки по соображениям безопасности. И, наконец, осуществляется отображение поля для ввода значения для настраиваемого параметра.
Теперь у нас есть настраиваемый параметр, значение которого мы можем изменять в окне настроек виджета. Теперь нам надо учитывать это параметр при выводе виджета. Для этого внесём незначительные изменения в функцию вывода виджета.
<?php
function dm_example_widget_show() {
$options = get_option('dm_example_widget');
if (empty($title))
$title = 'Простой виджет';
echo '<li id="dm_example_widget" class="widget dm_example_widget"><h2 class="widgettitle">'.$title.'</h2><ul><li>Очень простой виджет…</li></ul></li>';
}
?>
Вначале необходимо считать параметры. Если заголовок не задан, то будем использовать встроенное в виджет значение. И осуществляем вывод переменной, в которой сохранён наш заголовок.
Ну вот, практически всё закончено. Осталось только вызвать функцию wp_register_widget_control для регистрации функции настроек виджета, которою мы добавим в функцию dm_example_widget_init.
<?php
function dm_example_widget_init() {
register_sidebar_widget("dm-example-widget", "dm_example_widget_show");
wp_register_widget_control('dm-example-widget', 'dm_example_widget', 'dm_example_widget_control');
}
?>
WordPress производит вывод виджетов в виде списка. Каждый виджет оформляется как элемент этого списка. В данном примере создаётся элемент списка с присвоенным идентификатором для возможности применить к виджету стили оформления, выводится текст со стилем виджетов и в качестве содержимого виджета так же выводится простой текст.
Ну вот, практически всё закончено. Осталось только вызвать функцию add_action для регистрации плагина.
<?php
add_action("plugins_loaded", "dm_example_widget_init");
?>
Заходим в административную панель, переходим в раздел дизайн и в настройках виджетов изменяем настройки нашего виджета.
Ссылки:
О создании виджетов на сайте WordPress.org
Описание функции get_option
Описание функции wp_register_widget_control
Описание функции add_action
:: Рубрика - WordPress ::