我正在使用wordpress循环显示所有帖子。我需要计算特定帖子的所有图像。
<?php while ( $the_query->have_posts() ) : $the_query->the_post();
$attachments = get_children( array( 'post_parent' => $post->ID, 'post_mime_type' => 'image' ) );
$count = count( $attachments );
$specific = array();
$i = 1;
foreach ( $attachments as $attachment ) {
$specific[$attachment->ID] = $i;
++$i;
} ?> <a href="#"><?php echo $count; ?></a>
<?php endwhile; ?>
问题在于,它不起作用,并且不显示图像计数。
答案 0 :(得分:1)
您可以使用功能参考/获取附件,如下所示:
with the_post();
$count = count( get_attached_media( 'image' ) );
或带有帖子ID
$count = count( get_attached_media( 'image', $post->ID ) );
文档:https://codex.wordpress.org/Function_Reference/get_attached_media
答案 1 :(得分:0)
这是一个解决方案,有关详细信息,请访问https://blog.josemcastaneda.com/2014/03/18/get-image-count-in-wordpress-post/
// Get all the galleries in the current post
$galleries = get_post_galleries( get_the_ID(), false );
// Count all the galleries
$total_gal = count( $galleries );
/**
* count all the images
* @param array $array The array needed
* @return int returns the number of images in the post
*/
function _get_total_images( $array ){
$key = 0;
$src = 0;
while ( $key < count( $array ) ){
$src += count( $array[$key]['src'] );
$key++;
}
return intval( $src );
}
echo _get_total_images( $galleries );
答案 2 :(得分:0)
您可以使用基本的PHP来执行此操作。每个图像都以可重复的HTML模式开头,因此只需使用substr_count()
计算出现次数:
$image_count = substr_count( get_the_content(), '<img' );
这将为您提供帖子中<img>
的数量。