Как показать разные боковые панели для постов и страниц в WordPress
Опубликовано: 2023-02-16По умолчанию WordPress показывает одну и ту же боковую панель для всех сообщений и страниц. Но иногда вы можете захотеть отобразить совершенно другую боковую панель для наиболее важных сообщений или элементов боковой панели, связанных со всей категорией сообщений. Если вы когда-нибудь задумывались, как это сделать, вам повезло!
В этой статье мы покажем вам, как создавать уникальные боковые панели для разных сообщений или страниц как вручную, так и с помощью плагинов WordPress. Но сначала давайте поговорим подробнее о том, почему вы можете захотеть это сделать.
Почему вам могут понадобиться разные боковые панели
Как указывалось ранее, если в вашем блоге много категорий, у вас может возникнуть соблазн создать боковую панель с похожими предложениями, рекламой или продуктами по этой теме. Или, может быть, вы хотите рассказать о своем бизнесе на боковой панели «О нас», адаптированной для аудитории каждой страницы.
В таких ситуациях вам понадобится уникальная боковая панель. Есть два способа создать его: вручную, разработав свой собственный, или с помощью плагина WordPress.
Сначала рассмотрим ручной способ.
Как вручную создать новую боковую панель WordPress
Чтобы вручную создать новую боковую панель, в идеале следует использовать дочернюю тему в локальной среде. Мы уже создали его для темы двадцать семнадцать, но вы можете выполнить тот же процесс для любой темы.
Сначала найдите файл, в котором боковая панель прописана в вашей теме. Обычно это файл functions.php, но он может отличаться в зависимости от вашей темы.
Откройте файл и найдите функцию для кода боковой панели. Обычно она состоит из register_sidebar
, а полная функция может выглядеть примерно так:
[php]
функция двадцать семнадцать_виджетов_инит () {
register_sidebar(
множество(
'name' => __('Боковая панель блога', 'twentyseventeen'),
'id' => 'сайдбар-1',
'description' => __( 'Добавьте сюда виджеты, чтобы они отображались на боковой панели в сообщениях блога и на страницах архива.', 'twentyseventeen' ),
'before_widget' => '<идентификатор раздела=”%1$s” класс=”виджет %2$s”>',
'after_widget' => '</section>',
'before_title' => '<h2 class=”название виджета”>',
'после_названия' => '</h2>',
)
);
register_sidebar(
множество(
'имя' => __('Нижний колонтитул 1', 'двадцать семнадцать'),
'id' => 'сайдбар-2',
'description' => __( 'Добавьте сюда виджеты, чтобы они отображались в нижнем колонтитуле.', 'twentyseventeen' ),
'before_widget' => '<идентификатор раздела=”%1$s” класс=”виджет %2$s”>',
'after_widget' => '</section>',
'before_title' => '<h2 class=”название виджета”>',
'после_названия' => '</h2>',
)
);
register_sidebar(
множество(
'имя' => __('Нижний колонтитул 2', 'двадцать семнадцать'),
'id' => 'сайдбар-3',
'description' => __( 'Добавьте сюда виджеты, чтобы они отображались в нижнем колонтитуле.', 'twentyseventeen' ),
'before_widget' => '<идентификатор раздела=”%1$s” класс=”виджет %2$s”>',
'after_widget' => '</section>',
'before_title' => '<h2 class=”название виджета”>',
'после_названия' => '</h2>',
)
);
}
add_action('widgets_init', 'двадцать семнадцать_widgets_init');
[/php]
Теперь скопируйте всю функцию и создайте файл functions.php в вашей дочерней теме (если у вас его еще нет) и вставьте код. Обязательно измените имя функции.
В зависимости от того, сколько дополнительных боковых панелей вам нужно создать, вы можете просто воспроизвести тот же код и назначить уникальный идентификатор для каждой боковой панели. Вы также должны изменить имя и описание, чтобы сделать каждое из них уникальным. Здесь мы создали две новые боковые панели:
[php]
функция двадцать семнадцать_new_widgets_init () {
register_sidebar(
множество(
'имя' => __('Боковая панель WordPress', 'двадцать семнадцать'),
'id' => 'сайдбар-4',
'description' => __( 'Добавьте сюда виджеты, чтобы они отображались на боковой панели в сообщениях блога, связанных с WordPress.', 'twentyseventeen' ),
'before_widget' => '<идентификатор раздела=”%1$s” класс=”виджет %2$s”>',
'after_widget' => '</section>',
'before_title' => '<h2 class=”название виджета”>',
'после_названия' => '</h2>',
)
);
register_sidebar(
множество(
'name' => __('Боковая панель веб-дизайна', 'twentyseventeen'),
'id' => 'сайдбар-5',
'description' => __( 'Добавьте сюда виджеты, чтобы они отображались на боковой панели в постах блога, связанных с веб-дизайном.', 'twentyseventeen' ),
'before_widget' => '<идентификатор раздела=”%1$s” класс=”виджет %2$s”>',
'after_widget' => '</section>',
'before_title' => '<h2 class=”название виджета”>',
'после_названия' => '</h2>',
)
);
}
add_action('widgets_init', 'двадцать семнадцать_new_widgets_init');
[/php]
Новые боковые панели уже готовы; Если вы проверите раздел виджетов, он покажет две новые области виджетов. Мы добавили простой текстовый виджет на каждую боковую панель, чтобы сделать их узнаваемыми.
После того, как вы создали боковые панели, пришло время назначить местоположение. Мы хотим заменить существующую правую боковую панель, поэтому вам нужно найти файл, в котором он находится.
В данном случае он находится в sidebar.php
. Скопируйте файл из родительской темы и вставьте в дочернюю тему.
Если вы проверите файл, он вызывает sidebar-1
, который является идентификатором основной правой боковой панели.
[php]
<aside id=”вторичный” класс=”область виджета” роль=”дополнительный” aria-label=”<?php esc_attr_e( 'Боковая панель блога', 'двадцать семнадцать' ); ?>»>
<?php dynamic_sidebar('sidebar-1'); ?>
</в сторону>
[/php]
Теперь мы создадим одну боковую панель для моей категории веб-дизайна и другую для моей категории WordPress. Этого можно достичь двумя разными способами: один — на основе шаблонов, а другой — на основе категорий.
Шаблонный подход
При таком подходе вы должны создавать разные шаблоны в зависимости от ваших требований. В этом примере single.php отвечает за отдельные сообщения, поэтому вы можете скопировать и вставить файл в свою дочернюю тему. Переименуйте файл соответствующим образом, например wordpress-post.php
, а также добавьте имя шаблона.
[php]
/* Имя шаблона: Боковая панель WordPress
* Тип сообщения в шаблоне: сообщение */
[/php]
Точно так же мы создали еще один шаблон с именем webdesign-post.php
.
Теперь вернитесь к файлу sidebar.php
дочерней темы и добавьте простое условие, чтобы проверить, какой шаблон используется. Для этого мы будем использовать функцию is_page_template()
.
Код говорит сам за себя. Он проверяет, какой шаблон используется, и соответственно устанавливает боковую панель. Если ни одно из условий не выполнено, будет использоваться боковая панель по умолчанию.
[php]
<?php
если ( is_page_template('wordpress-post.php')) {
dynamic_sidebar('боковая панель-4');
}elseif ( is_page_template('webdesign-post.php')){
dynamic_sidebar('боковая панель-5');
}еще{
dynamic_sidebar('боковая панель-1');
}
?>
[/php]
Теперь давайте создадим новый пост и назначим один из только что созданных шаблонов.
Вы увидите, что я выбрал боковую панель WordPress для этого конкретного поста.
Категорийный подход
В этом примере (изменение боковой панели на основе категорий сообщений) подход на основе категорий будет работать лучше, чем подход на основе шаблонов. Для этого вам нужно настроить условие в sidebar.php
на основе категории, а не шаблона, используя функцию in_category()
.
[php]
<?php
если (in_category('wordpress')) {
dynamic_sidebar('боковая панель-4');
}elseif ( in_category('веб-дизайн') ){
dynamic_sidebar('боковая панель-5');
}еще{
dynamic_sidebar('боковая панель-1');
}
?>
[/php]
Теперь, если вы редактируете или создаете новый пост, просто добавьте нужную категорию. Он будет отображать боковую панель соответствующим образом, поэтому нет необходимости выбирать какой-либо шаблон! Здесь мы выбрали веб-дизайн в качестве категории сообщений, поэтому появится боковая панель веб-дизайна.
По сути, вам просто нужно настроить условие sidebar.php в соответствии с вашими конкретными требованиями.
Как создать собственные боковые панели с помощью плагинов WordPress
Если у вас возникли проблемы с созданием боковых панелей вручную, вы можете попробовать несколько удобных плагинов WordPress, которые позволяют легко создавать их!
Одним из таких плагинов является Content Aware Sidebars. Это простой плагин, который позволяет динамически создавать боковые панели на отдельных страницах, постах, категориях и т. д.
После установки вы увидите боковое меню в панели администратора.
Боковые панели > Добавить новый
Сначала добавьте имя на боковую панель. Затем вы можете установить условия отображения в раскрывающемся списке «Условия боковой панели» . Боковая панель может иметь несколько условий, таких как страницы, сообщения, категории, автор и т. д.
Вы можете запланировать боковую панель на вкладке «Расписание» и изменить теги HTML на вкладке «Дизайн».
Вы увидите окно параметров с правой стороны. Оттуда вы можете установить расположение и правила вашей новой боковой панели. Вы также можете выполнять действия, такие как создание шорткода боковой панели.
Как только ваша боковая панель будет опубликована, вы сможете получить к ней доступ из раздела «Внешний вид» > «Виджеты» .
Эта новая боковая панель будет отображаться на страницах и в сообщениях автоматически в соответствии с вашими настройками.
Плагин также позволяет вам выбирать боковые панели при редактировании каждого сообщения или страницы, независимо от ваших первоначальных настроек.
Внутри поста или страницы вы увидите боковые панели — панель быстрого выбора с правой стороны, которая покажет вам все существующие боковые панели. Оттуда вы можете выбрать свою боковую панель в целевом местоположении, установленном ранее в начальных настройках.
Например, ранее мы создали «Мою боковую панель» и целевым расположением была боковая панель блога , поэтому на панели быстрого выбора «Моя боковая панель» будет доступна только для боковой панели блога .
Однако вы также можете создавать новые боковые панели в разделе страницы редактирования. Просто введите название новой боковой панели и опубликуйте или обновите страницу.
Если вы создаете новую боковую панель, вам просто нужно активировать ее в разделе «Внешний вид» > «Виджеты» .
Примечание. Вы также можете назначать боковые панели своим страницам, но убедитесь, что ваш шаблон страницы включает боковую панель. Без этого боковая панель не будет отображаться, даже если вы установите ее в разделе редактирования страницы.
Заключение
Теперь вы видели два варианта создания боковых панелей: ручная разработка и с помощью плагинов. Если вам не нравятся коды, то использование плагина может быть лучшим вариантом для вас, но если у вас есть особые требования и вы не хотите добавлять дополнительный плагин на свой сайт, вам следует выбрать ручной способ. . Важно понять ваши требования, а затем выбрать лучший вариант!