1

问题:我添加的第三个侧边栏没有出现在目标页面上。

描述:我想看看是否有人可以看到我在特定模板中创建和显示小部件侧边栏的步骤中缺少的任何内容。使用下面描述的情况,侧边栏出现在小部件管理页面上,但是当模板呈现时,侧边栏是默认侧边栏,这表明模板没有找到动态侧边栏。这是我添加的第二个侧边栏。如果我将模板标记中的侧边栏名称替换为第一个附加模板的名称,则页面将使用第一个自定义侧边栏呈现。

创建其他小部件侧边栏并使用选定模板显示它们的步骤

1)在functions.php中注册子主题中的侧边栏
2)在注册过程中为新的侧边栏分配名称和ID
3)在现有模板的基础上创建一个额外的侧边栏模板。复制现有模板并更改动态模板的名称以匹配新注册的侧边栏
4) 转到要显示侧边栏的模板并将侧边栏的名称插入到 get_sidebar() 模板标签中。
5)转到管理面板并将小部件拖到新的侧边栏书帖上

具体来说,这可能看起来像:

  1. 注册侧边栏:

    if ( function_exists ('register_sidebar'))
        register_sidebar( array(
        'name'          => __('bookpost'),
        'id'            => 'sidebar-bookpost',
        'description'   => 'Sidebar for showing ad and section list on the template single-book.php',
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget'  => '</div>',
        'before_title'  => '<h2 class="widgettitle">',
        'after_title'   => '</h2>' ));
    
  2. 指定名称 bookpost 和 sidebar-bookpost
  3. 创建一个名为 sidebar-bookpost.php 的附加侧边栏模板。编辑行

    所以它现在读取

    get_sidebar('bookpost');
    

最后使用小部件管理页面分配小部件。

4

1 回答 1

3

你想获得动态侧边栏吗?如果是这样,那么使用

<?php if ( is_active_sidebar( 'sidebar-bookpost' ) ) : ?>

        <?php dynamic_sidebar( 'sidebar-bookpost' ); ?>

<?php endif; ?>

而不是 get_sidebar('bookpost');

…………

于 2013-02-01T12:45:18.927 回答