Wordpress:为特定模板添加小部件侧边栏

Posted

技术标签:

【中文标题】Wordpress:为特定模板添加小部件侧边栏【英文标题】:Wordpress: Adding Widget Sidebar for specific template 【发布时间】:2013-01-16 00:00:01 【问题描述】:

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

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

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

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

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

    注册侧边栏:

    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>' ));
    
    指定名称 bookpost 和 sidebar-bookpost

    创建一个名为 sidebar-bookpost.php 的附加边栏模板。编辑行

    所以它现在读取

    get_sidebar('bookpost');
    

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

【问题讨论】:

【参考方案1】:

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

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

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

<?php endif; ?>

而不是 get_sidebar('bookpost');

…………

【讨论】:

感谢您的回复。我会提醒其他读者——我的第一个附加侧边栏使用了“get_sidebar()”并且它工作正常。最终,我对第二个附加侧边栏的问题与我的仪表板没有保存小部件的内容有关,不知道为什么会发生这种情况。在尝试了建议的解决方案并看到它的工作后,我能够将“get_sidebar('bookpost') 用于第二个附加侧边栏,它按预期工作。建议的解决方案同样有效,尽管由于某种原因它会导致侧边栏布局问题被强制到页面底部 - 应该很容易解决。

以上是关于Wordpress:为特定模板添加小部件侧边栏的主要内容,如果未能解决你的问题,请参考以下文章

php 在主题激活期间,WordPress将小部件添加到侧边栏。

下划线 Wordpress 主题 - 添加第二个侧边栏

Wordpress小部件正在管理区域中消失

如何将类添加到侧边栏小部件的 <ul> 和子级 <li> - Wordpress

是否存在 WordPress 小部件(或侧边栏)挂钩?

Wordpress 自定义演示侧边栏未出现在帖子上