WordPress: Добавить виджет в область Header

Для WordPress в теме TwentyTwelve можно добавить виджет только на боковую панель. Об этом нам пишется если вызвать настройки внешнего вида сайта:
КонсольВнешний видНастроитьВиджеты
Для редактирования нам предлагается только опция Главная боковая колонка, а для всего остального пишут:

Ваша тема имеет 2 других области для виджетов, но эта страница не показывает их.
Вы можете переходить на другие страницы вашего сайта используя интерфейс настройки для просмотра и редактирования виджетов на этих страницах.

Вообще я просто хотел добавить RTB-блок от Яндекс-рекламы в шапку, а чтобы не править файлы дочерней темы, решил просто вставить виджет «Шорткод». На текущий момент у меня получилось, хотя я пока не могу ограничить некоторые рекламные блоки по высоте. Пусть простят меня читатели этого блога. Я бы и рад это сделать, но Адаптивные блоки в этом плане наглеют, а отключить только их нельзя.

Позже я сменил код, чтобы можно было добавить виджет не в ЗАГОЛОВОК, а в верхнюю часть ЗАПИСИ (файл single.php). Т.о. Рекламный блок теперь растягивается не на весь экран (ширину и высоту области header страницы), а ограничивается размерами области с записью. Для этого пришлось создать файл sidebar-single.php, и ссылку на него добавлять не в header.php, а в single.php.

Благодаря этому данный рекламный блок теперь не виден, если зайти на сайт напрямую, а виден только при заходе на конкретную запись.

 

Решение нашёл на этом сайте.

1. В дочерней теме TwentyTwelve правим добавляем файл functions.php строки:

functions.php
//add a widget area in the header 

if ( function_exists ('register_sidebar') )

register_sidebar( array(

  'name' => __( 'Header Widgets Area', 'twentytwelve' ),
  'id' => 'sidebar-header',
  'description' => __( 'A new header widgets area for my child them' ,  'twentytwelve' ),
  'before_widget' => '<aside id="%1$s" class="widget %2$s">',
  'after_widget' => '</aside>',
  'before_title' => '<h3 class="widget-title">',
  'after_title' => '</h3>',
) );

add_action( 'widgets_init', 'twentytwelve_widgets_init' );

2. В нашей дочерней теме создаём файл sidebar-header.php

sidebar-header.php
<?php if ( is_active_sidebar( 'sidebar-header' ) ) : ?>
		<div id="headWidgets" role="complementary">
			<?php dynamic_sidebar( 'sidebar-header' ); ?>
		</div>
<?php endif; ?>

3. В файл header.php добавляем строки:

header.php
<?php get_sidebar( 'header' ); ?>

4. Если теперь перейти в настройки Внешнего вида, то нам будет доступна новая опция: Header Widgets Area



Запись опубликована автором в рубрике Software с метками .
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments