web-dev-qa-db-fra.com

Autoriser le shortcode pour le widget personnalisé

Le code suivant permet l'analyse de shortcode pour le widget 'texte':

add_filter('widget_text', 'do_shortcode');

Comment faire un semblable pour un widget personnalisé?

J'ai essayé le suivant mais cela n'a pas fonctionné:

add_filter('widget_CUSTOM_WIDGET_NAME', 'do_shortcode');
1
Ahmed Saad

Vous pouvez essayer ce qui suit:

/**
 * Only allow shortcodes for a widget with a given title.
 *
 * @see http://wordpress.stackexchange.com/a/160246/26350
 */

function wpse_widget_shortcode( $text, $instance )
{
        // Only allow shortcodes for the widget with the following title:
        $title = 'Some Title'; 

        remove_filter( current_filter(), __FUNCTION__ );

        if( isset( $instance['title'] ) 
            && mb_strtolower( $title ) === $instance['title'] 
        )
            $text = do_shortcode( $text );

        return $text;
}

add_filter( 'widget_text', 'wpse_widget_shortcode', 99, 2 );

où nous ciblons le widget donné par son titre.

0
birgire