Создаем виджеты в шаблоне на CMS WordPress

Регистрируем панель виджетов, в которую потом будем размещать виджеты на сайте, я обычно использую такие панели для различных функциональных частей на сайте, типа сайдбаров, футеров или для каких-то блоков в хедере.

Регистрируем виджеты:

<?php
function register_my_widgets() {
  register_sidebar(array(
    'name' => 'Sidebar',
    'id' => "sidebar-widget",
    'before_widget' => '',
    'after_widget' => '',
    'before_title' => '',
    'after_title' => '',
  ));
  register_sidebar(array(
    'name' => 'Home Sidebar',
    'id' => "home-sidebar-widget",
    'before_widget' => '',
    'after_widget' => '',
    'before_title' => '',
    'after_title' => '',
  ));
}
add_action('widgets_init', 'register_my_widgets');
?>

Выводим виджеты:

<?php if ( is_active_sidebar( 'sidebar-widget' ) ) : ?>
  <?php dynamic_sidebar( 'sidebar-widget' ); ?>
<?php endif; ?>
 
<?php if ( is_active_sidebar( 'home-sidebar-widget' ) ) : ?>
  <?php dynamic_sidebar( 'home-sidebar-widget' ); ?>
<?php endif; ?>

Второй вариант вывода виджета:

<?php
  if ( function_exists('dynamic_sidebar') )
  dynamic_sidebar('sidebar-widget');
?>

Более подробно:

Шаблон использования виджетов

add_action( 'widgets_init', 'register_my_widgets' );
function register_my_widgets(){
  register_sidebar( array(
    'name'          => sprintf(__('Sidebar %d'), $i ),
    'id'            => 'sidebar-$i',
    'description'   => '',
    'class'         => '',
    'before_widget' => '<li id="%1$s" class="widget %2$s">',
    'after_widget'  => "</li>\n",
    'before_title'  => '<h2 class="widgettitle">',
    'after_title'   => '</h2>\n',
  ) );
}

Аргументы параметра $args

name (строка)
Название панели виджетов. Название будет видно в админ-панели WordPress. По умолчанию «Боковая колонка 1» (локализация от Sidebar $i, где $i — порядковый номер сайдбара). Значение не должно быть пустым!
По умолчанию: sprintf(__('Sidebar %d'), $i )

id (строка)
Идентификатор виджета. Строка, в которой не должно быть заглавных букв и пробелов. Значение не должно быть пустым, если оставить этот параметр пустым, то в режиме разработки (при дебаге) получите заметку типа E_USER_NOTICE.
По умолчанию: 'sidebar-$i'

description (строка)
Текст описывающий где будет выводиться панель виджетов. Показывается в панели управления виджетами.
По умолчанию: ''

class (строка)
CSS класс, который будет добавлен главному HTML тегу панели виджетов.
По умолчанию: ''

before_widget (строка)
HTML код, который будет расположен перед каждым виджетом в панели. Например:
Конструкции %1$s и %2$s будут заменены на id и class используемого в сайдбаре виджета.
По умолчанию: '<li id="%1$s" class="widget %2$s">'

after_widget(строка)
HTML код, который будет расположен после каждого виджета в панели. Например: </li>.
По умолчанию: '</li>\n'

before_title(строка)
HTML код перед заголовком виджета.
По умолчанию: '<h2 class="widgettitle">'

after_title(строка)
HTML код после заголовка виджета.
По умолчанию: '</h2>\n'

Например, зарегистрируем панель виджетов для главной страницы сайта

Добавим код в functions.php:

function register_my_widgets(){
  register_sidebar( array(
    'name' => 'Боковая панель на главной странице',
    'id' => 'homepage-sidebar',
    'description' => 'Выводиться как боковая панель только на главной странице сайта.',
    'before_widget' => '<li class="homepage-widget-block">',
    'after_widget' => '</li>',
    'before_title' => '<h2 class="widgettitle">',
    'after_title' => '</h2>',
  ) );
}
add_action( 'widgets_init', 'register_my_widgets' );

В файл page-home.php вставим вывод панели:

<div class="custom">
  <?php
  if ( function_exists('dynamic_sidebar') )
    dynamic_sidebar('homepage-sidebar');
  ?>
</div>

Более подробно на сайте wp-kama.ru.

Добавляем меню в свой шаблон на CMS WordPress

Регистрируем и выводим произвольное меню, созданное в панели: «Внешний вид > Меню» (Appearance > Menus)….

Добавляем файлы SVG через PHP

Используя PHP можно загружать содержимое SVG-файлов без лишних запросов к серверу, без использования img или…

Создание мультиязычных сайтов на CMS WordPress

[vc_message color=»alert-info»] Статья в процессе написания. Начинал писать ее в 2013 году, потом все менялось…

Создание вариативных товаров в WooCommerce (создание вариаций)

Создаем вариации для товаров в WooCommerce. 1. Во вкладке Product data выбираем Variable Product 2….

Ответить