サイドバーを(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
)を印刷する方法?サイドバーの名前を取得して印刷する方法はありますか(利用可能な場合は説明もありますか)。
$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;