Очень часто, используя стандартные шаблоны WordPress в них уже установлены позиции для виджетов, которые пользователь может использовать в админке. Но иногда требуется переместить позицию того или иного виджета или даже создать новую. Разберемся как это сделать.
Начнем с того, что создадим саму позицию виджета, которая будет доступна нам в админке (как обычно, к данной позиции мы сможем привязать множество виджетов методом перетаскивания). Перед созданием позиции надо узнать название шаблона, которое у вас сейчас используется. Для этого нажмите комбинацию клавиш Ctrl + U - откроется исходный код вашего сайта. Найдите ссылки типа /wp-content/themes/папка_темы/... и запомните только папка_темы - это и будет названием вашего шаблона. Для примера, пускай оно будет mywidgets.
Теперь откройте файл /wp-content/themes/папка_темы/functions.php
В конце документа, перед ?> вставьте следующий код:
function new_mywidgets() {
register_sidebar(array(
'name' => __( 'Поделиться', 'mywidgets' ), //mywidgets - название (папка) шаблона
'id' => 'sidebar-5', //уникальный id виджета (обязательный параметр)
'description' => __( 'Описание позиции виджета', 'mywidgets' ),
'before_widget' => '<div class="myclass1 %1$s"><div class="myclass2 %2$s">', //класс виджета свой + динамический
'after_widget' => '</div></div>',
'before_title' => '<h4>',
'after_title' => '</h4>',
) );
}
add_action('widgets_init', 'new_mywidgets');
Разберем код. Здесь:
- new_mywidgets - имя функции для подключения виджета;
- 'name' => __( 'Поделиться', 'mywidgets' ) - первое - название позиции виджета в админке, второе - название папки шаблона;
- 'id' => 'sidebar-5' - уникальное имя позиции виджета (должно быть всегда разным если хотите создать несколько позиций виджетов в WordPress);
- 'description' - описание позиции виджета в админке
- 'before_widget' и 'after_widget' - какими тегами будет обрамляться виджет, добавленный в эту позицию
- 'before_title' и 'after_title' - какими тегами будет обрамляться заголовок виджета, добавленный в эту позицию
Теперь когда вы сохраните изменения в functions.php, у вас в админке, в виджетах появится новая позиция "Поделиться". В которую можно перетащить свои виджеты.
Осталось решить вопрос вывода виджета в произвольном месте шаблона
Для этого надо определить где его выводить. Например, footer.php - для низа сайта, header.php - для верха сайта, single.php (или подобный) - для страниц заметок блога. Предположим, что нужно вывести виджет в шапке сайта. Открываем на редактирование header.php и вписываем где нужно вывести позицию виджета следующий код:
<?php
if (is_active_sidebar( 'sidebar-5' ) ) : ?>
<?php dynamic_sidebar( 'sidebar-5' ); //уникальный id виджета ?>
<?php endif; ?>
После этого в шапке сайта выведутся те виджеты, которые привязаны к этой позиции в админке. Кстати, обратите внимание на идентификатор sidebar-5 - он связан с кодом, который мы писали в functions.php
О том, как установить несколько позиций виджетов на сайт и в админку вы можете узнать из файла ниже.
В нем вы найдете примеры для 2-х виджетов. По аналогии можно будет сделать количество гораздо больше.
Добавить комментарий