Функция get_sidebar()
используется для добавления в тему WordPress файла с шаблоном сайдбара. Это может быть стандартный файл sidebar.php
или файл с именем, соответствующим конкретному сайдбару, например, sidebar-{name}.php
.
Если в папке с темой отсутствуют шаблоны сайдбаров, WordPress использует сайдбар по умолчанию, находящийся в директории wp-includes/theme-compat/sidebar.php
.
get_sidebar( $name = null )
Параметры
- $name (строка, необязательный): Идентификатор сайдбара, который добавляется к имени файла перед расширением в формате
sidebar-{$name}.php
. Этот параметр появился в WordPress 2.5.0.
Возвращаемое значение
Функция возвращает null
при успешном подключении файла и false
в случае, если файл шаблона не существует.
Подключение стандартного сайдбара
Самый простой вариант использования функции без параметров:
<?php get_sidebar(); ?>
Этот код подключит файл sidebar.php
.
Простейший шаблон страницы с ошибкой 404
Используя функции get_header()
, get_sidebar()
и get_footer()
, создадим шаблон страницы для ошибки 404:
<?php get_header(); ?>
<h2>Ошибка 404. Страница не найдена.</h2>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Подключение нескольких сайдбаров
Предположим, у нас на сайте используются две боковые панели — слева и справа от контента. Создадим два шаблона сайдбара: sidebar-left.php
и sidebar-right.php
, и подключим их в нужном порядке:
<?php get_header(); ?>
<?php get_sidebar('left'); /* подключает sidebar-left.php */ ?>
<div id="content">Содержимое страницы</div>
<?php get_sidebar('right'); /* подключает sidebar-right.php */ ?>
<?php get_footer(); ?>
Регистрация сайдбара
Прежде чем использовать сайдбар, его нужно зарегистрировать в файле functions.php
вашей темы:
function genius_widgets_init() {
register_sidebar( array(
'name' => 'Main Sidebar',
'id' => 'main-sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'genius_widgets_init' );
Использование зарегистрированного сайдбара
После регистрации сайдбара его можно подключить в шаблоне, добавив код в sidebar.php
:
<?php if ( is_active_sidebar( 'main-sidebar' ) ) : ?>
<aside id="secondary" class="widget-area">
<?php dynamic_sidebar( 'main-sidebar' ); ?>
</aside><!-- #secondary -->
<?php endif; ?>
Подключение сайдбара из подпапки темы
Для подключения сайдбара из подпапки темы можно создать аналог функции get_sidebar()
. Например, чтобы подключить файл inc/sidebar.php
, добавьте следующий код в functions.php
:
function theme_sidebar( $name = '' ){
do_action( 'get_sidebar', $name );
if ( $name )
$name = "-$name";
locate_template( "inc/sidebar$name.php", true );
}
Затем вызовите эту функцию вместо get_sidebar()
:
theme_sidebar();
Этот код подключит файл inc/sidebar.php
из папки текущей темы.
Заключение
Функция get_sidebar()
является мощным инструментом для управления сайдбарами в теме WordPress. Она позволяет подключать как стандартные, так и специфические сайдбары, используя параметр имени. Если файл сайдбара не найден в теме, подключается сайдбар по умолчанию из директории wp-includes/theme-compat/sidebar.php
. Использование этой функции делает ваш сайт более гибким и легко настраиваемым.