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

Php 如何检查文本小部件是否有特定内容?,php,widget,wordpress,wordpress-theming,Php,Widget,Wordpress,Wordpress Theming,我需要检查文本小部件是否有特定内容 更具体地说,我需要检查文本小部件内容是否有以以下开头的特定短代码: [按钮 非常感谢您的帮助 谢谢!WordPress短代码在文本小部件中不起作用。为什么我不知道,但如果您需要此功能,很容易实现,只需在functions.php中编写以下代码即可: add_filter( 'widget_text', 'shortcode_unautop'); add_filter( 'widget_text', 'do_shortcode'); 您的短代码现在应该可以

我需要检查文本小部件是否有特定内容

更具体地说,我需要检查文本小部件内容是否有以以下开头的特定短代码:

[按钮

非常感谢您的帮助


谢谢!

WordPress短代码在文本小部件中不起作用。为什么我不知道,但如果您需要此功能,很容易实现,只需在functions.php中编写以下代码即可:

add_filter( 'widget_text', 'shortcode_unautop');

add_filter( 'widget_text', 'do_shortcode'); 

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

首先,您可以使用如下功能导出小部件内容:

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文档。

您也可以筛选文本小部件,并使用
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 );
function my_filter_widget_text($widget_text,$instance,$widget){
$tag='button';
if(有_短代码($instance['text'],$tag)){
$widget_text.='blub

'; } 返回$widget\u文本; } 添加_过滤器('widget_text','my_filter_widget_text',1,3);

希望这能有所帮助。

嗨,拉姆齐,谢谢你的评论。是的,我很熟悉。我的函数中已经有了这个功能,我的短代码在文本小部件中也可以使用。我需要的是检查文本小部件内容是否有那个特定的短代码。我正在使用与该教程完全相同的函数。我只是想知道是否有一种简单的方法可以检查如果文本小部件有快捷代码(“按钮”),那就做点什么..嗨,我熟悉快捷代码以及如何在$post->post\U内容中检查它。我只是没有足够的知识在文本小部件内容上实现它。谢谢。