不在特定帖子上执行函数

时间:2014-03-02 作者:kat

function content_strip_img($content) {
global $post;
if ($post->ID !== 1 || $post->ID !== 2 || $post->ID !== 3 ) {   
    return preg_replace(\'/<img[^>]+./\',\'\', $content);
    }
}
add_filter(\'the_content\', \'content_strip_img\');
这似乎不起作用?如何从函数中排除特定帖子,即在所有other 帖子?

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

这主要是一个逻辑问题,但您的过滤器也有故障。

仔细考虑这个条件。如果其中任何一个值--$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\');

结束

相关推荐

Exclude pages by menu order

我有一个“默认页面生成器”的主题激活我已经创建在该文件中,我为每页设置了“menu\\u order”。i want to exclude pages with menu order bigger then 50 from the default wp_list_pages menu是否有方法检查/检索每页的“menu\\u order”?如果有,您能想出一种方法将其集成到wp\\u list\\u pages函数中吗?