Preg_Match()不使用POST内容

时间:2013-04-04 作者:Mentalhead

我是Wordpress的新手,我编写了以下函数:

function find_my_image() {
if(is_single()) {

    if (preg_match(\'#(<img.*?>)#\', $content, $result)){

        $content .= \'<p>Image has been found</p>\';

    }
    else{

        $content .= \'<p>Sorry, no image here!</p>\';

    }


}
echo $content;

}
add_filter(\'the_content\', \'find_my_image\');
基本上,我只是想知道我的帖子中是否有图像,并显示正确的信息。目前,我总是得到错误的结果,所以我只是想知道我做错了什么。

1 个回复
最合适的回答,由SO网友:vancoder 整理而成

在代码中,$内容不存在。您需要在函数中接受参数:

function find_my_image( $content ) {
    if ( is_single() ) {
        if ( preg_match( \'/(<img[^>]+>)/i\', $content, $result ) ) {
            $content .= \'<p>Image has been found</p>\';
        } else {
            $content .= \'<p>Sorry, no image here!</p>\';
        }
    }
    return $content;
}

add_filter( \'the_content\', \'find_my_image\' );
此外,请注意,您应该始终在筛选后返回内容-请参阅the codex.

结束

相关推荐

向函数添加APPLY_FILTERS有什么不利影响吗?

我将回顾我以前的WordPress主题,使函数可过滤,并添加函数\\u exists检查。我有没有想过这会导致现有代码出现问题?// Dummy function if ( ! function_exists( \'custom_func\' )) { function custom_func() { $output = \"Something Awesome\"; return apply_filters(\'custom_func