web-dev-qa-db-ja.com

カスタムウィジェットのショートコードを許可する

以下のコードは 'text'ウィジェットのショートコード解析を可能にします。

add_filter('widget_text', 'do_shortcode');

カスタムウィジェット用に似たようなものを作るには?

私は以下の方法を試しましたが、うまくいきませんでした。

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

あなたは以下を試すことができます:

/**
 * 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 );

与えられたウィジェットをタイトルでターゲットにします。

0
birgire