检查当前快捷码是否正在小部件中使用

时间:2016-03-04 作者:Cyto

如何检查当前的短代码是否正在小部件中使用?我需要禁用一些小部件中不允许的短代码选项。

有人知道怎么做吗?

1 个回复
SO网友:Jevuska

有两个钩子,widget_textdynamic_sidebar_params. 您可以使用其中一个。

add_filter( \'widget_text\', \'wpse219770_filter_widget_text\', 1, 3 );
    function wpse219770_filter_widget_text( $widget_text, $instance, $widget )
    {
        $tag = \'bartag\';//shortcode tag
        if ( \'text-2\' == $widget->id && has_shortcode( $instance[\'text\'], $tag ) )
            remove_shortcode( $tag );
        else
            add_shortcode( $tag, \'bartag_func\' );

        return $widget_text;
    }
或者您可以使用以下方法:

add_action( \'dynamic_sidebar_params\', \'wpse219770_dynamic_sidebar_params_hook\', 1, 1 );
function wpse219770_dynamic_sidebar_params_hook( $content )
{
    //print_r( $content ) and use it for conditional

    $tag = \'bartag\';
    if ( shortcode_exists( $tag ) )
        remove_shortcode( $tag );

    return $content;
}

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\