我正在与新媒体经理合作,在检索帖子附件时遇到了一个小问题。我正在开发一个插件,需要检索特定帖子的所有附件。
我首先想到使用以下代码:
$args = array(
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
\'post_status\' => \'inherit\',
\'post_parent\' => $id );
$attachments = get_posts($args);
但问题是,这将检索我在这篇特定文章中上载的附件,而不是我当前使用的附件。
例如,假设我有三篇帖子。当我创建第一篇帖子时,我已经直接上传了这三篇帖子所需的所有图片,但仅将其中一些图片作为ACF或gallery用于实际帖子。问题是,当我运行上述代码时,在搜索第一篇文章的附件时,我将有一个包含三篇文章所有附件的数组,而在搜索第二篇和第三篇文章的附件时,则没有一个数组。尽管我在最后的帖子中使用了一些图片。
那么,有没有人知道我如何检索帖子中实际使用的所有图像,而不是附在这篇帖子上的图像?
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 */
}