Как вывести второй сайдбар?
Перейдите в Внешний вид > Настроить > Блоки > Главная/Запись/Страница/Архивы и в поле “Сайдбар” выберите “Справа”.
Чтобы вывести второй сайдбар слева от контента, установите и активируйте дочернюю тему https://support.wpshop.ru/docs/general/child-themes/.
1. Откройте файл functions.php дочерней темы и добавьте код
/* Регистрация второго сайдбара */
add_action( 'widgets_init', function () {
register_sidebar( [
'name' => 'Сайдбар 2',
'id' => 'sidebar-2',
'description' => esc_html__( 'Add widgets here.', THEME_TEXTDOMAIN ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="widget-header">',
'after_title' => '</div>',
] );
} );
2. Из родительской в дочернюю тему скопируйте файл sidebar.php и переименуйте его в sidebar-second.php.
Откройте файл sidebar-second.php в дочерней теме и код
if ( ! is_active_sidebar( 'sidebar-1' ) ) {
return;
}
?>
<aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar">
<?php do_action( THEME_SLUG . '_sidebar_before_widgets' ); ?>
<?php dynamic_sidebar( 'sidebar-1' ); ?>
<?php do_action( THEME_SLUG . '_sidebar_after_widgets' ); ?>
</aside><!-- #secondary -->
замените на
if ( ! is_active_sidebar( 'sidebar-2' ) ) {
return;
}
?>
<aside id="secondary-2" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar">
<?php do_action( THEME_SLUG . '_sidebar_before_widgets' ); ?>
<?php dynamic_sidebar( 'sidebar-2' ); ?>
<?php do_action( THEME_SLUG . '_sidebar_after_widgets' ); ?>
</aside><!-- #secondary -->
3. Из родительской в дочернюю тему скопируйте файлы 404.php, archive.php, index.php, page.php, search.php и single.php.
Откройте данные файлы в дочерней теме и перед строкой
<div id="primary" class="content-area">
вставьте код
<?php get_template_part( 'sidebar' , 'second' ) ?>
4. Затем в файл style.css дочерней темы добавьте код
/* Вывод второго сайдбара слева */
@media (min-width: 992px) {
.content-area {
width: calc(100% - 680px);
padding-left: 20px;
padding-right: 20px;
}
#secondary {
padding-right: 20px;
}
#secondary-2 {
float: left;
padding-left: 20px;
padding-right: 0;
}
}
@media (min-width: 1200px) {
.page-separator {
margin-left: -20px;
}
}
@media (min-width: 768px) {
.entry-content {
padding-right: 30px;
}
}
В коде
.content-area {
width: calc(100% - 680px);
padding-left: 20px;
padding-right: 20px;
}
Отступы контента слева/справа от сайдбаров 20px
можно изменить на другие.
5. Чтобы сделать сайт шире и выровнять на всю ширину контент всех страниц, перейдите в Внешний вид > Настроить > Расширенные настройки и в поле “Контент на всю ширину” поставьте галочку.
Чтобы контент записи на странице записи также выровнять на всю ширину сайта, перейдите в Внешний вид > Настроить > Дополнительные стили и добавьте следующий код:
/* Выравнивание контента записи на всю ширину */
.entry-content, .home-text, .taxonomy-description {
max-width: 100%;
}