WordPress侧边栏的工作原理

时间:2015-06-05 作者:me_digvijay

好吧,这个标题肯定不能很好地解释我的基本问题,但这里是:

我刚刚开始创建wordpress主题和索引。php有两列:

1)主要内容和

2)一个垂直列,我在其中显示其他信息,如档案、最近的帖子,所有这些都是通过编程实现的。

Updated

到目前为止,一切都很好,然后我听说注册了一个边栏,其中显示了除主要内容以外的一些内容(其中I think 听起来和我的很相似)。这个侧边栏是wordpress本身提供的功能,还是与我的主题侧边栏(由我创建)有关?此外,是否需要为主题注册侧栏?我需要做些什么来注册侧边栏吗?如果需要,具体是什么?

另外,在主题中注册侧栏究竟意味着什么(我指的是在后台发生的DB或其他sql查询)?

3 个回复
SO网友:s_ha_dum

我听说注册了一个侧边栏,其中显示了除主要内容以外的一些内容(我觉得听起来与我的非常相似)。Is this sidebar a functionality provided by wordpress itself or it has to do something with my theme\'s sidebar(which was created by me)?

除了基本的边栏机制之外,Core没有提供任何关于这方面的内容。边栏和任何必要的小部件都必须由您创建或安装。

此外,是否需要为主题注册侧栏?

是的,当然。否则,WordPress和主题将不知道存在。从技术上讲,插件(例如)可以注册侧栏,但必须对主题进行编码才能使用它。

我需要做些什么来注册侧边栏吗?如果需要,具体是什么?

另外,在主题中注册侧栏究竟意味着什么(我指的是在后台发生的DB或其他sql查询)?

There is sample code in the Codex.

SO网友:TheDeadMedic

您可以使用的两个功能是register_sidebardynamic_sidebar - 尽管名称不同,但它们不需要与传统意义上的“提要栏”有任何关系。

至于术语“widget”,这只不过是一段代码,它接受一些设置并输出一些内容。用户可以在外观>小部件下,将小部件分配到后端中已注册的“侧栏”区域。

例如,您可能有一个用户可以编辑的“页眉”和“页脚”区域。按如下方式注册两个区域:

register_sidebar(
    array(
        \'name\' => \'Header\',
        \'id\'   => \'header\',
    )
);

register_sidebar(
    array(
        \'name\' => \'Footer\',
        \'id\'   => \'footer\',
    )
);
然后显示分配给“header”的所有小部件:

<?php dynamic_sidebar( \'header\' ) ?>
通过注册“有条件”区域,您可以更进一步。例如,侧栏中仅用于首页的小部件:

register_sidebar(
    array(
        \'name\'        => \'Sidebar Front Page\',
        \'description\' => \'Widgets that only show in the sidebar on the front page.\',
        \'id\'          => \'sidebar-front-page\',
    )
);
然后在显示功能周围放置条件:

<div class="sidebar">

    Some content that\'s always here

    <?php if ( is_front_page() ) : ?>

        <?php dynamic_sidebar( \'sidebar-front-page\' ) ?>

    <?php endif ?>

</div>

SO网友:Brad Dalton

这就是侧边栏在《2012》中的工作原理

共有两部分:

使用在函数文件中注册侧栏register_sidebar

function your_widgets_init() {
    register_sidebar( array(
    \'name\' => __( \'Main Sidebar\', \'twentytwelve\' ),
    \'id\' => \'sidebar-1\',
    \'before_widget\' => \'<aside id="%1$s" class="widget %2$s">\',
    \'after_widget\' => \'</aside>\',
) );
}
add_action( \'widgets_init\', \'your_widgets_init\' );
然后将其显示在您喜欢使用的任何位置dynamic_sidebar. 在这种情况下,它会添加到侧栏中。php文件并包含在不同的模板中,使用get_sidebar(); 但您也可以使用以下代码在任何模板文件中直接调用侧栏。

<?php if ( is_active_sidebar( \'sidebar-1\' ) ) : ?>
<div id="secondary" class="widget-area" role="complementary">
<?php dynamic_sidebar( \'sidebar-1\' ); ?>
</div><!-- #secondary -->
<?php endif; ?>
另一个选项是使用WordPress或主题特定的钩子从函数文件中钩住侧栏,如下所示:

add_action( \'loop_start\', \'custom_sidebar\' );
function custom_sidebar() {

    if ( ! is_front_page() )
        return;

    dynamic_sidebar( \'sidebar-1\', array(
        \'before\' => \'<div id="secondary" class="widget-area" role="complementary">\',
        \'after\'  => \'</div>\',
    ) );

}
要注册侧栏,也可以在函数文件中使用此方法:

 register_sidebar( array(
    \'name\' => __( \'Main Sidebar\', \'twentytwelve\' ),
    \'id\' => \'sidebar-1\',
) );
创建多个侧栏时,需要使用唯一的ID。

结束

相关推荐

Not Getting Sidebar

我使用的侧栏使用if-else语句。无论我做什么,它总是显示else默认侧边栏。它们似乎已注册,因为它们显示在管理窗口小部件部分。我可以向它们添加小部件,但它们不会显示在页面中。仅默认侧栏。这是侧边栏模板<aside id=\"sidebar\" role=\"complementary\"> <?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar() ) : ?>&#