如何获取帖子内容中的所有内联图片?

时间:2015-06-25 作者:Corey

我想在帖子内容中获取所有内联图像。

The get_children() method 对我来说不起作用,因为他们可以添加两次相同的照片。此外,这只会获取“附加”图像,他们可能会通过HTML编辑器选项卡添加图像,而该选项卡不会将图像附加到帖子中。

我想按所有内联图像在帖子中出现的顺序获取它们的数组。

这可能吗?

1 个回复
SO网友:Hybrid Web Dev

你可以用两种方法中的一种来做。

$attachments = get_posts(array(
                    \'post_type\' => \'attachment\',
                    \'numberposts\' => -1,
                    \'post_status\' => null,
                    \'post_parent\' => get_the_ID(),
                    \'order\' => \'ASC\',
                    \'orderby\' => \'id\',

                ));
然后操纵数组以删除重复项。

另一种选择是应用内容过滤器,并使用regex查找和获取内容中的所有img标记。

据我所知,当您在可视化编辑器中添加图像时,wp会将其添加为后期附件,因此您不应该通过第一种方法得到重复的图像。至于按它们出现的顺序抓取,附件是按顺序添加的,因此按ID抓取列表应该按照它们添加到帖子的顺序提供列表,但不一定按照它们在标记中的出现顺序。为此,您肯定必须使用第二种使用内容过滤器的方法。

不过,我个人并不喜欢使用内容过滤器来实现这一点,因为根据添加的所有标记,可能很难编写适当的正则表达式来获取IMG。

对于正则表达式,如下所示:

preg_match(\'#(<img.*?>)#\', $content, $results);
可能有用。这将把结果转储到$results变量中,作为您可以使用的数组。

结束

相关推荐

如何让NEXT_POSTS_LINK使用定制页面

我有一个使用模板的自定义页面,并试图利用next\\u posts\\u link和previous\\u posts\\u link在新闻页面的底部设置按钮。问题是,当点击它们时,它成功地将“/主页/新闻/页面/2/”显示为页面,但忽略了它,仍然显示原来的10篇帖子。我怀疑页面上有一个过滤器可能是罪魁祸首,但我试着毫不费力地将其移除。非常感谢来自Wordpress大脑的帮助!<?php $paged = ( get_query_var( \'page\' ) ) ? get_qu