wake-up-neo.com

Wie können Sie einen Link zu einer Seitenleistenbeschreibung hinzufügen?

Wie kann ich einen Link zu einer Seitenleistenbeschreibung hinzufügen?

$sidebar_description = sprintf(__( 'Sidebar for the <a href="%s">%s</a> post', 'themetext' ), get_permalink($post->ID), $post->post_title);

register_sidebar(
    array(
        'name'              => $post->post_title . ' (' .  __( 'Post', 'themetext' ) . ')',
        'id'                => 'sidebar-'.$post->ID,
        'description'       => $sidebar_description,
        'before_widget'     => '<div id="%1$s" class="widget %2$s">',
        'after_widget'      => '</div>',
        'before_title'      => '<h3>',
        'after_title'       => '</h3>',
    )
);

Dadurch wird das A-Tag in reinem Text anstelle von HTML ausgegeben.

ANTWORT

add_action( 'widgets_admin_page', function() use ( $sidebar_description ) {
    add_filter( 'esc_html', function( $safe_text, $text ) use ( $sidebar_description ) {
        if ( $text !== $sidebar_description )
            return $safe_text;

        remove_filter( current_filter(), __FUNCTION__ );

        return $sidebar_description;
    }, 10, 2 );
});
1
Mark

Die Beschreibung der Seitenleiste durchläuft esc_html(), sodass Sie HTML nicht direkt übergeben können. Sie können jedoch den Filter esc_html verwenden, um den gewünschten Inhalt einzufügen.

Hier ist ein einfaches Beispiel:

add_action( 'widgets_init', function() {

    $desc = "Read the <a href='http://wordpress.stackexchange.com/q/189749/73'>explanation</a>!";
    $placeholder = 'PLACEHOLDER';
    register_sidebar([
        'id'          => 'wpse-189749',
        'name'        => 'Link description',
        'description' => $placeholder
    ]);

    add_action( 'widgets_admin_page', function() use ( $desc, $placeholder ) {
        add_filter( 'esc_html', function( $safe_text, $text ) use ( $desc, $placeholder ) {

            if ( $text !== $placeholder )
                return $safe_text;

            remove_filter( current_filter(), __FUNCTION__ );

            return $desc;
        }, 10, 2 );
    });
});

Ergebnis:

enter image description here

3
fuxia