Когда я вызываю одну боковую панель, появляется несколько боковых панелей.Как исправить? - PullRequest
0 голосов
/ 15 июня 2011

У меня есть файл functions.php, где я зарегистрировал все боковые панели.

В файле sidebar.php у меня есть это

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Home Page') ) : ?>
<?php endif; ?>

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Blog Page') ) : ?>
<?php endif; ?>

, тогда я называю его

 <?php get_sidebar('Home Page'); ?>

все же появляется боковая панель страницы блога.Что делать?

edit: Подождите, мне нужно создать страницу для всех моих боковых панелей?Вот почему это не работает?

Это будет много страниц, есть ли другой способ обойти это?

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Команда dynamic_sidebar () фактически выводит указанную боковую панель.Когда вы вызываете get_sidebar, он отображает обе эти боковые панели, потому что в условной форме выводится боковая панель.

Вы не совсем на правильном пути для того, что вы хотите.

Вы идетечтобы просто иметь в своих шаблонах

get_sidebar();

.

Затем в файле sidebar.php вы сделаете условия, чтобы определить, когда что показывать.Например, что-то вроде этого ...

if ( is_page() ) :
    dynamic_sidebar('page-sidebar');
elseif ( is_post() ) :
    dynamic_sidebar('post-sidebar');
endif;

Дайте мне знать, если у вас все еще проблемы, и я могу дать более подробную информацию / более подробный пример решения

0 голосов
/ 16 июня 2011

Я делаю это немного по-другому, я делаю:

Это в моих функциях. Php:

    // header
    register_sidebar( array (
    'name' => 'Header Widget Area',
    'id' => 'header_widget_area',
    'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
    'after_widget' => "</li>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
    ) );

    // Single Post Sidebar
    register_sidebar( array (
    'name' => 'Single Widget Area',
    'id' => 'single_widget_area',
    'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
    'after_widget' => "</li>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
  ) );

Затем я называю их так, в каком шаблоне я их использую:

<?php if ( is_sidebar_active('header_widget_area') ) : ?>
        <?php dynamic_sidebar('header_widget_area'); ?>
<?php endif; ?>

Дайте мне знать, если вам нужна дополнительная помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...