如何在主题中获取侧边栏的名称和描述?

时间:2017-03-09 作者:sariDon

我注册了一个侧栏(在functions.php) 作为:

<?php
register_sidebar( array(
        \'name\'          => __(\'Activity Calendar\'),
        \'id\'            => \'activity_calendar_en\',
        \'before_widget\' => \'\',
        \'after_widget\'  => \'\',
        \'before_title\'  => \'\',
        \'after_title\'   => \'\',
    ));
?>
在我的主题中,我称之为:

<?php
if( is_active_sidebar( \'activity_calendar_en\' ) ):
    dynamic_sidebar( \'activity_calendar_en\' );
endif;
?>
现在我的问题是:如何打印提要栏名称(Activity Calendar 在这种情况下)在主题中?是否有任何方法可以获取和打印提要栏名称(以及任何描述,如果可用)?

1 个回复
最合适的回答,由SO网友:Fayaz 整理而成

您可以使用$wp_registered_sidebars 全局变量。像这样:

global $wp_registered_sidebars;
if( is_active_sidebar( \'activity_calendar_en\' ) ):
    esc_html_e( $wp_registered_sidebars[\'activity_calendar_en\'][\'name\'] );
    dynamic_sidebar( \'activity_calendar_en\' );
endif;
如果您检查WordPress核心is_registered_sidebar 函数,您将看到它也在使用此全局变量:

function is_registered_sidebar( $sidebar_id ) {
    global $wp_registered_sidebars;

    return isset( $wp_registered_sidebars[ $sidebar_id ] );
}
然而,据我所知,您无法使用任何函数检索它。

尽管如此,对于描述,有一个函数:wp_sidebar_description(). 您也可以使用全局变量进行描述,也可以使用此函数:

if( is_active_sidebar( \'activity_calendar_en\' ) ):
    echo wp_sidebar_description( \'activity_calendar_en\' );
    dynamic_sidebar( \'activity_calendar_en\' );
endif;

相关推荐

当模板中没有Get_Sidebar时,您如何控制侧边栏?

我正在使用Omega(ThemeHall版本;有多个Omega主题)进行WordPress 4.0安装。我看到的大多数用于控制侧栏是否显示的说明都告诉我如何使用get_sidebar 标签这个主题让我可以在任何地方或任何地方打开侧栏,所以我选择在所有地方都打开它,这样我就可以从页面模板中找到并删除get\\u侧栏。但是当我看所有的时候。主主题文件夹中的php文件,get\\u侧边栏不会出现。在任何地方不在第页中。php,索引。php,页脚。php等等等等等等等等。这就是我的WordPress理解能力突然停