wordpress计数特定帖子中的图像数量

时间:2013-10-24 12:21:18

标签: php wordpress

我正在使用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; ?>

问题在于,它不起作用,并且不显示图像计数。

3 个答案:

答案 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>的数量。