Intereting Posts
Используется более одного текстового домена из-за включенных шаблонов для плагинов Операции CRUD с использованием API базы данных WordPress Субдомены Multisite не показывают изображения Существует ли файл шаблонов по умолчанию для дочерних страниц / подстраниц? Woocommerce // Предупреждение: call_user_func () ожидает, что параметр 1 будет действительным обратным вызовом Меню «Условное Навигационное меню» Меню «Внутри» на разных сайтах Multisite Ошибка загрузки файла в галерее после перемещения сервера Ломающаяся сетка бутстрапа при количестве сообщений с налоговыми условиями Как отображать категории продуктов на главной странице? Как я могу программно создавать «дочерние» страницы при активации темы? Сохранить в медиа-библиотеке изображение, загруженное с url Как добавить параметр отношения к моему запросу фильтра? Перенаправление правильного пути внутри каталога плагина Как удалить метабокс с страницы редактора меню? wp_enqueue_scripts не работает внутри короткого кода

Добавление дополнительной боковой панели к вашей теме

Я хочу добавить дополнительную боковую панель в эту тему WordPress. Я хочу это прямо под моей левой боковой панелью, а не рядом с ней, пока она показывает: www.giftforgag.com .

Я пробовал много вещей, но ничего не работает. Я также попытался внести различные изменения в css.

Я подумал, что проще всего просто установить get_sidebar('left'); прямо под get_sidebar(); которая существует в самом конце, но она не сработала.

Тема, о которой идет речь, составляет двадцать четыре года, и я разместил здесь код файла:

 <?php get_header(); ?> <div id="main-content" class="main-content"> <?php if ( is_front_page() && twentyfourteen_has_featured_posts() ) { get_template_part( 'featured-content' ); } ?> <div id="primary" class="content-area"> <div id="content" class="site-content" role="main"> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); get_template_part( 'content', get_post_format() ); endwhile; twentyfourteen_paging_nav(); else : get_template_part( 'content', 'none' ); endif; ?> </div><!-- #content --> </div><!-- #primary --> </div><!-- #main-content --> <?php get_sidebar(); get_sidebar('left'); get_footer(); 

Я зарегистрировал виджет, используя следующий код:

 function mychild_widgets_init() { register_sidebar( array( 'name' => __( 'Left Widget Area', 'twentyfourteen' ), 'id' => 'sidebar-left', 'description' => __( 'Left sidebar.', 'twentyfourteen' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h1 class="widget-title">', 'after_title' => '</h1>', ) ); } add_action( 'widgets_init', 'mychild_widgets_init' ); 

Я также пытаюсь это сделать:

 'before_wdiget' => '<div id="content">' 'after_widget' => '</div> 

Пока ничего не работает.

Файл sidebar.php:

 <div id="left"> <?php if ( is_active_sidebar( 'sidebar-left' ) ) : ?> <div id="left-sidebar" class="left-sidebar widget-area" role="complementary"> <?php dynamic_sidebar( 'sidebar-left' ); ?> </div> <?php endif; ?> </div> 

get_sidebar('left'); на самом деле относится к файлу, а не к боковой панели.

  1. Вы видите боковую панель в разделе «Администратор»?
  2. Вы пытаетесь отобразить его на передней панели?

Если ответ на оба этих вопроса «да», то вот решение:

Создайте файл с именем sidebar-left.php . В этом файле вам нужно будет добавить визуализированный HTML-код:

 <?php // Left Sidebar template ?> <div id="left-sidebar" class="sidebar"> <?php dynamic_sidebar( 'sidebar-left' ); ?> </div> 

Вы смешиваете здесь несколько вещей, а именно:

register_sidebar()

Это нужно зарегистрировать боковую панель, чтобы вы могли поместить ее в бэкэнд.

get_sidebar()

Это просто включает файл sidebar.php (или sidebar.php sidebar-nice-bar.php если вы вызываете get_sidebar('nice-bar') ) из текущей темы

dynamic_sidebar()

Это фактически отображает виджеты, добавленные в бэкэнд, в область боковой панели, определенную с помощью register_sidebar . Это, вероятно, сделано в одном из файлов, на которые ссылается get_sidebar .

Итак, что вам нужно сделать на основе вашего вопроса, либо заменить

 get_sidebar('left'); 

с

 dynamic_sidebar('left'); 

или создайте в своей теме файл sidebar-left.php и добавьте в него dynamic_sidebar('left') .

Для более подробного, отличного объяснения посмотрите на этот отличный пост by @ justin-tadlock