post->post_content filter

时间:2012-06-14 作者:Zach

我试图确定我使用的正则表达式是否不正确,或者是否缺少一些基本的东西。以下内容:

add_filter(\'the_content\',\'wpdu_image_replace\');
function wpdu_image_replace($content) {
    global $post;
    preg_replace( \'/<img.*src="(.*?)".*?>/\', \'<a href="\\1">Image file</a>\', $post->post_content );

    return $content;
}
应该寻找任何<img> 在内部post->post_content (帖子的内容)并将整个标记替换为href 只需链接到图像文件。最后,我要做的事情有点复杂,但我想我应该从基础开始。任何帮助都将不胜感激。谢谢

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

您使用preg_replace 功能不正确。此函数返回替换的内容:

add_filter( \'the_content\', \'wpdu_image_replace\' );
function wpdu_image_replace( $content ) {
    return preg_replace( \'/<img.*?src="(.*?)".*?>/\', \'<a href="$1">Image file</a>\', $content );
}
还要注意,您不必使用全局变量$post, 因为post的内容作为第一个参数传递给函数。

结束

相关推荐

Ajax, filters and shortcodes

您能理解为什么我无法在ajax帖子包含中应用短代码过滤器吗?让我更好地解释一下:我已经设法在另一篇文章中包含一篇文章,通过admin-ajax.php, 正如著名的5 tips.很明显,我不想显示快捷码标签,也不想去掉它们,所以我在回应do_shortcode($post->post_content)此时,虽然我正在运行“Cleaner gallery”插件,但post gallery会被渲染,但未被过滤add_filter( \'post_gallery\', \'cleaner_gallery\