Задать вопрос
@Cobra8106

Как вывести количество вложенных изображений в посте?

Ребята, помогите вывести количество (только цифру) прикрепленных изображений. А именно - 1 изображение прикреплено как основное изображения поста, а остальные прикрепляются через кастомные поля плагина ACF.
<!-- Выводим последние 6 постов категории ID=5 - ГАЛЕРЕЯ -->
<?php $catquery = new WP_Query( 'cat=5&posts_per_page=6' ); ?>
          <?php while($catquery->have_posts()) : $catquery->the_post(); ?>
          <div class="item">
            <div class="wrapper">
              <a href="<?php the_permalink() ?>">
                <?php the_post_thumbnail(); ?>
                <div class="data df">
                  <span><?php the_date(); ?></span>
                  <!-- Количество изображений в посте -->
                  <p>

                  </p>
                </div>
                <p><?php the_title(); ?></p>
              </a>
              <a class="link" href="<?php echo get_page_link(29); ?>"><?php the_field('p-gallery-btn') ?></a>
            </div>
          </div>
          <?php endwhile;
          wp_reset_postdata();
          ?>


Есть подобные вопросы на форумах. Знаю что где-то так можно было бы:
$attachments = get_attached_media( 'image', $post->ID );
или
$attach = get_children(array('post_parent'=>$post->ID));
$attach_count = count($attach);
...но пока не получается.
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@KingAnton
Приатаченные (загруженные специально для записи)
<?php $attached_images = get_attached_media( 'image' ); ?>
<div><?php echo count($attached_images); ?> прикрепленных изображений</div>


Можно вариант через поиск всех тегов img в посте. Добавить код в functons.php
function count_img_in_post ($content) {
    preg_match_all('/<img(.*?)src=("|\'|)(.*?)("|\'| )(.*?)>/s', $content, $images);
    
    if(has_post_thumbnail()) {
    	return count($images[0]) + 1;
    }

    return count($images[0]);
}


Добавить внутрь цикла:
<?php $content = get_the_content();  ?>
<div><?php echo count_img_in_post($content);  ?> прикрепленных изображений</div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы