Создать в WordPress позицию для виджета в шаблоне

Создать в WordPress позицию для виджета в шаблоне

12

Очень часто, используя стандартные шаблоны 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-х виджетов. По аналогии можно будет сделать количество гораздо больше.

| | Создать в WordPress позицию для виджета в шаблоне | Очень часто, используя стандартные шаблоны Wordpress в них уже установлены позиции для виджетов, которые пользователь может использовать в админке. Но | http://blogprogram.ru/wp-content/uploads/2016/03/121-131x131.png

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>