这主要是一个逻辑问题,但您的过滤器也有故障。
仔细考虑这个条件。如果其中任何一个值--$post->ID !== N
-- 是true
, 整个事情都是真的,因为一篇帖子只能有一个ID,所以其中两个条件都是真的。它不会按你想要的方式工作。你需要的是&&
. 这听起来很奇怪,但请仔细想想。唯一可能为true的方法是,如果post ID不是这些值中的任何一个。
其次,你应该总是(几乎总是)return
内容来自the_content
. 如果不这样做,则可以有效地删除帖子内容。
我已经为您重写了此代码:
function content_strip_img($content) {
global $post;
if ($post->ID !== 1 && $post->ID !== 2 && $post->ID !== 3 ) {
$content = preg_replace(\'/<img[^>]+./\',\'\', $content);
$content = \'Test\';
}
return $content;
}
add_filter(\'the_content\', \'content_strip_img\');