如何检索帖子中包含的图像

时间:2013-05-19 作者:Thoma Biguères

我正在与新媒体经理合作,在检索帖子附件时遇到了一个小问题。我正在开发一个插件,需要检索特定帖子的所有附件。

我首先想到使用以下代码:

   $args = array( 
        \'post_type\' => \'attachment\', 
        \'numberposts\' => -1, 
        \'post_status\' => \'inherit\', 
        \'post_parent\' => $id ); 
    $attachments = get_posts($args);
但问题是,这将检索我在这篇特定文章中上载的附件,而不是我当前使用的附件。

例如,假设我有三篇帖子。当我创建第一篇帖子时,我已经直接上传了这三篇帖子所需的所有图片,但仅将其中一些图片作为ACF或gallery用于实际帖子。问题是,当我运行上述代码时,在搜索第一篇文章的附件时,我将有一个包含三篇文章所有附件的数组,而在搜索第二篇和第三篇文章的附件时,则没有一个数组。尽管我在最后的帖子中使用了一些图片。

那么,有没有人知道我如何检索帖子中实际使用的所有图像,而不是附在这篇帖子上的图像?

1 个回复
SO网友:montrealist

我猜您需要获取帖子内容并使用something like this as a guide (上面链接中粘贴的代码供将来参考)。

// Get the all post content in a variable
$posttext = $post->post_content;
$posttext1 = $post->post_content;

// search for the src="" in the post content
$regular_expression = \'~src="[^"]*"~\';
$regular_expression1 = \'~<img [^\\>]*\\ />~\';

// grab all the images from the post in an array $allpics using preg_match_all
preg_match_all( $regular_expression, $posttext, $allpics );

// Count the number of images found.
$NumberOfPics = count($allpics[0]);

// This time we replace/remove the images from the content
$only_post_text = preg_replace( $regular_expression1, \'\' , $posttext1);

// Check to see if we have at least one image
if ( $NumberOfPics > 0 )
{
/* profit */
}

结束

相关推荐

how to edit attachments?

在将例如文件附加到帖子时,如何在事后编辑/删除它们?在帖子编辑器中找不到任何内容。谢谢