Знакомство с WordPress

Поначалу WordPress встретил меня очень недружелюбно, выдав после настройки Warning: Cannot modify header information - headers already sent by.... Но не успел я выругаться, как Google подсказал решение проблемы. Оказалось, что с подобной ошибкой пользователи данного движка сталкиваются регулярно и связана она с сохранением файла в неверной кодировке. Достаточно еще раз сохранить файл в кодировке "UTF-8" или "ANSI", чтобы восстановить работоспособность WordPress.

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

Естественно знакомство было бы неполным без попытки создать собственный плагин, к чему я сразу же приступил используя в качестве источника вдохновения статью Создаем виджеты для Wordpress. Итак, приступим к созданию плагина "Hello WordPress" – программы, которая традиционно встречается на страницах каждой второй книги о программировании.

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

  1.  
  2. /*
  3.   Plugin Name: Hello WP
  4.   Plugin URI: http://seo.nittis.ru/
  5.   Description: Hello WP Plugin.
  6.   Author: Vladimir Rybakov
  7.   Version: 1.0
  8.   Author URI: http://seo.nittis.ru/
  9.   */
  10.  
  11.  

Следующим шагом становится создание основной функции виджета, которая в данном случае выводит на экран приветствие.

  1.  
  2. function nittis_plugin_hello_wp($args)
  3. {
  4. //Преобразование ассоциированного массива $args в набор локальных переменных
  5. extract($args, EXTR_SKIP);
  6.  
  7. //Получение опций для плагина
  8. $options = get_option('nittis_plugin_hello_wp');
  9.  
  10. //Установка заголовка для плагина
  11. $title = empty($options['title']) ? 'Hello WordPress!' : $options['title'];
  12.  
  13. //Отображение виджета
  14. echo $before_widget;
  15. echo $before_title . $title . $after_title;
  16. echo '<br>Hello WordPress!</br>';
  17. echo $after_widget;
  18. }
  19.  
  20.  

Определим функцию, которая позволит менять настройки виджета, в нашем случае - это его заголовок.

  1.  
  2. function nittis_plugin_hello_wp_control()
  3. {
  4. //Получение опций для плагина
  5. $options = $newoptions = get_option('nittis_plugin_hello_wp');
  6.  
  7. //Обработка данных полученных из формы
  8. if ($_POST["nittis_plugin_hello_wp-submit"])
  9. {
  10. //Установка нового значения для заголовка
  11. $newoptions['title'] = strip_tags(stripslashes($_POST["nittis_plugin_hello_wp-title"]));
  12. }
  13.  
  14. //Сохранение данных, если они были изменены
  15. if ( $options != $newoptions )
  16. {
  17. $options = $newoptions;
  18. update_option('nittis_plugin_hello_wp', $options);
  19. }
  20. $title = htmlspecialchars($options['title'], ENT_QUOTES);
  21.  
  22. //Создание формы для изменения заголовка виджета
  23. echo ' <p><label for="nittis_plugin_hello_wp-title">'._e('Title:')
  24. .' <input style="width: 250px;" id="nittis_plugin_hello_wp-title"'
  25. .' name="nittis_plugin_hello_wp-title" type="text" value="'.$title
  26. .' " /></label></p>';
  27. echo ' <input type="hidden" id="nittis_plugin_hello_wp-submit"'
  28. .'name="nittis_plugin_hello_wp-submit" value="1" />';
  29. }
  30.  
  31.  

Осталось объявить функцию инициализации и установить хук, который эту функцию выполнит.

  1.  
  2. function nittis_plugin_hello_wp_init()
  3. {
  4. register_sidebar_widget('Hello WordPress', 'nittis_plugin_hello_wp');
  5. register_widget_control('Hello WordPress', 'nittis_plugin_hello_wp_control', 300, 90);
  6. }
  7.  
  8. add_action('init', 'nittis_plugin_hello_wp_init');
  9.  
  10.  

Вот и все, теперь необходимо сохранить полученный файл в папку ./wp-content/plugins/ и активировать новый плагин в настройках WordPress.

Результатом вышеприведенного кода можно полюбоваться на моей тестовой площадке для WordPress, где на правой панели красуется виджет "Hello WordPress".

Читайте в блоге

JavaScript Определение координат объектов и указателя мыши
Разноцветное облако ссылок
Рисуем график на PHP
Создание таблиц в плагине для WordPress
JavaScript Преобразование массивов и объектов в строку

Метки: Word Press

Комментарии:

Войдите на сайт, чтобы оставить комментарий