如何检查文本小部件是否有某些内容?

时间:2013-12-05 20:27:28

标签: php wordpress widget wordpress-plugin wordpress-theming

我需要检查 Text Widget 是否包含某些内容?

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

  

[按钮 ...

非常感谢任何帮助!

谢谢!

4 个答案:

答案 0 :(得分:1)

WordPress短代码在文本小部件中不起作用。为什么我不知道,但如果你需要这个功能,它很容易实现,只需在你的functions.php中编写下面的代码:

add_filter( 'widget_text', 'shortcode_unautop');

add_filter( 'widget_text', 'do_shortcode'); 

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

答案 1 :(得分:1)

您也可以过滤文本小部件并使用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 );

希望这有帮助。

答案 2 :(得分:0)

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

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;
}
}

我认为本教程可以帮助您完成工作:

Tutorial

答案 3 :(得分:0)

wordpress的has_shortcode()将在字符串中搜索特定短代码的存在。可以找到法典文件here