Приветствую всех читателей данной статьи. Сейчас расскажу как я научился работать с виджетами в своей теме под управлением CMS WordPress.
При создании собственной темы для сайта на wordpress мне необходимо было добавить несколько виджетов на страницу. Я начал искать по сайтам как это можно сделать. Пришлось пересмотреть множество уроков по данной теме, чтобы разобраться как это все работает.
Что бы у вас появилась возможность добавлять виджеты на сайт, необходимо лезть в файлы вашей темы, а именно в файл functions.php. Именно в данном файле необходимо провести ряд настроек.
Первым делом мы должны подключится при помощи хука к wordpress, добавьте вот такую строчку у себя в файле:
add_action( 'widgets_init', 'register_my_widgets' );
«register_my_widgets» — это название функции, его можно придумать каким захочешь. У меня называется именно так.
«widgets_init» — это хук событие к которому мы подключаем свою функцию с виджетами.
Так же необходимо подключить функцию поддержки виджетов: add_theme_support(‘widgets’), которая должна быть активирована для темы, в functions.php. Если вы забудете её активировать, то register_sidebar() активирует её автоматически.
Дальше необходимо написать эту самую функцию. Сама функция выглядит следующим образом:
function register_my_widgets(){
register_sidebar( array(
'name' => 'Правый сайдбар над меню',
'id' => "right_sidebar_up",
'description' => 'Правый сайдбар для виджетов',
'class' => '',
'before_widget' => '<div class="widget %2$s">',
'after_widget' => "</div>\n",
'before_title' => '<h3 class="widgettitle">',
'after_title' => "</h3>\n",
) ); }
Рассмотрим каждый аргумент в данной функции:
- name — записывается название поля для виджета, отображается в админке wordpress;
- id — сюда записывается название виджета которое будет использоваться в коде, можно писать любое название, без пробелов;
- description — описание которое так же отображается в админке;
- class — CSS класс, который будет добавлен главному HTML тегу панели виджетов;
- before_widget, after_widget — обертка для виджета;
- before_title, after_title — обертка для заголовка виджета.
С файлом functions.php закончили, теперь необходимо вывести в нужном нам месте данное поле. Для этого заходим в код нужной нам страницы и добавляем в выбранное место следующую строку:
<?php dynamic_sidebar('right_sidebar_up'); ?>
‘right_sidebar_up’ — это как раз то название, которое мы задавали в поле ID в функции.
На этом все, теперь можем спокойно добавлять виджеты в данное поле.