wake-up-neo.com

Wie erhalte ich den Namen und die Beschreibung einer Seitenleiste im Thema?

Ich habe eine Sidebar registriert (in functions.php) als:

<?php
register_sidebar( array(
        'name'          => __('Activity Calendar'),
        'id'            => 'activity_calendar_en',
        'before_widget' => '',
        'after_widget'  => '',
        'before_title'  => '',
        'after_title'   => '',
    ));
?>

In meinem Thema nenne ich es wie folgt:

<?php
if( is_active_sidebar( 'activity_calendar_en' ) ):
    dynamic_sidebar( 'activity_calendar_en' );
endif;
?>

Jetzt lautet meine Frage: Wie wird der Name der Seitenleiste (in diesem Fall Activity Calendar) im Design gedruckt? Gibt es eine Möglichkeit, den Namen der Seitenleiste abzurufen und auszudrucken (sowie eine Beschreibung, falls verfügbar)?

3
sariDon

Sie können die globale Variable $wp_registered_sidebars verwenden. So was:

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;

Wenn Sie den WordPress-Core auf is_registered_sidebar prüfen, werden Sie feststellen, dass auch diese globale Variable verwendet wird:

function is_registered_sidebar( $sidebar_id ) {
    global $wp_registered_sidebars;

    return isset( $wp_registered_sidebars[ $sidebar_id ] );
}

Soweit ich weiß, können Sie es jedoch nicht mit einer Funktion abrufen.

Zur Beschreibung gibt es jedoch eine Funktion: wp_sidebar_description(). Sie können auch die globale Variable für die Beschreibung oder diese Funktion verwenden:

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