从内容中排除第一个图像的条件函数,不起作用

时间:2012-12-21 作者:sosukeinu

我有以下功能:

function remove_images( $content ) {
    if( ( is_category() || is_archive() || is_home() ) && has_term( \'MyCat\', \'category\', $postID ) ) {
        $postOutput = preg_replace("/\\< *[img][^\\>]*[.]*\\>/i","",$content,1);
    return $postOutput;
    }
}
add_filter( \'the_content\', \'remove_images\', 100 );
它的目的是删除w索引页(所有列表页)上的\\u content()中的第一个图像,仅用于MyCat类别中的帖子。相反,它所做的是从索引页所有帖子的\\u content()中删除第一个图像,然后在allsingle pages. 任何帮助都将不胜感激。非常感谢。

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

相反,它所做的是从索引页所有帖子的\\u content()中删除第一个图像。。。

这是因为你的回调告诉过滤器要这样做。对于指定上下文中的所有帖子(存档索引、类别索引、博客帖子索引),不返回true,仅针对这些索引中的第一篇帖子。

。。。并删除所有单个页面上的\\u content()。

这是因为,如果条件返回false,则不会返回任何内容。你需要return $content; 超出你的条件。

结束

相关推荐

Images inside post title

有没有办法在帖子标题中插入图片?它还需要在<title> 标签、永久链接等。我之所以需要这样做,是因为我有一个客户希望在页面标题中使用他们的徽标,而不是纯文本。因此,图像可能位于标题中的任何位置,因此我不能只是附加/前置图像。我能想到的唯一解决方案是使用javascript进行查找和替换,但这似乎不是一个很好的解决方案。。。