如何检查文本小部件是否有特定内容


How to check if text widget has certain content?

我需要检查文本小工具是否有特定内容?

更具体地说,我需要检查Text Widget内容是否有一个以开头的特定短代码

[按钮

非常感谢您的帮助!

谢谢!

WordPress快捷代码在文本窗口小部件中不起作用。为什么我不知道,但如果你需要这个功能,它很容易实现,只需在下面的函数中写下这段代码。hp:

add_filter( 'widget_text', 'shortcode_unautop');
add_filter( 'widget_text', 'do_shortcode'); 

你的短代码现在应该可以在你的文本窗口小部件中使用了!

您也可以过滤文本小部件,并使用has_shortcode函数来查找是否使用了您的快捷代码。

function my_filter_widget_text( $widget_text, $instance, $widget ) {
    $tag = 'button';
    if ( has_shortcode( $instance['text'], $tag ) ) {
        $widget_text .= '<p>blub</p>';
    }
    return $widget_text;
}
add_filter( 'widget_text', 'my_filter_widget_text', 1, 3 );

希望这能有所帮助。

首先,您可以使用这样的函数导出小部件内容:

if(!function_exists('get_dynamic_sidebar'){
function get_dynamic_sidebar($index = 1)
{
    $sidebar_contents = "";
    ob_start();
    dynamic_sidebar($index);
    $sidebar_contents = ob_get_clean();
    return $sidebar_contents;
}
}

我认为这个教程可以帮助你完成你的工作:

教程

wordpress的has_shortcode()将在字符串中搜索是否存在特定的短代码。Codex文档可在此处找到。