커스텀 워드 프레스 루프 (WP_Query)의 게시물을 세고 있습니까?


41

나는 이것을 바꾸려고 노력했다.

    <?php $count = count($custom_posts); ?>
    <h2><?php echo $count; ?></h2>

루프 끝에서 :

      <?php if ( bbp_get_forum_title() == 'Test Forum 1' ) : ?>
            <?php $custom_posts = new WP_Query(); ?>
            <?php $custom_posts->query('post_type=blocks&location=Business and Finance&order=DESC'); ?>
            <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>
                <div class="ad">
                    <?php the_content(); ?>
                </div>
                <?php $count = count($custom_posts); ?>
                <h2><?php echo $count; ?></h2>
            <?php endwhile; ?>
      <?php endif; ?>

그러나 총 게시물 수 대신이 출력을 얻습니다.

번역 1

Lorem ipsum dolor 앉은 자세, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore 마그나 aliquam erat volutpat. Ut wisi enim 1

이 문제를 해결하기위한 제안 사항이 있습니까?

답변:


73

총 게시물 수를 얻는 올바른 방법은 다음과 같습니다.

<?php $count = $custom_posts->found_posts; ?>

http://codex.wordpress.org/Class_Reference/WP_Query#Properties

편집 : @ Kresimir Pendic의 대답을 아마도 맞다고 인정합니다. post_count는 특정 페이지에 대한 게시물 수이고 found_posts페이지 매김없이 쿼리 요구 사항을 충족하는 모든 사용 가능한 게시물 수입니다. 수정 해 주셔서 감사합니다.


감사! 마지막 질문입니다. 해당 번호를 사용하여 루프 외부에있는 if 문을 만드는 방법은 무엇입니까? 그 루프 뒤에 변수를 배치 할 때만 숫자가 표시되는 것처럼 보입니다.
janoChen

4
$ custom_posts-> query () 바로 뒤에 $ count = $ custom_posts-> post_count를 넣을 수 있습니다. $ custom_posts-> post_count는 결과 집합의 해당 '페이지'에있는 결과 수만 가져옵니다. '전체'결과 세트에서 총 결과 수를 얻으려면 $ custom_posts-> found_posts를 사용하십시오.
Robert Durgin

2
이 답변은 대부분의 상황에 맞지 않을 수 있습니다. post_count (이 페이지에 표시 할 게시물 수) 대신 found_posts (발견 된 모든 게시물)를 사용하십시오. 이 의견은 논리적으로 중복되지만 사회적으로 말하는 것은 아닙니다.
Herbert Van-Vliet

1
이 답변은 잘못되었습니다. $custom_posts->post_count이 페이지에 표시되는 게시물의 양을 반환하므로 표시 posts_per_page되는 양이 적을 경우 쿼리 값 또는 더 낮은 값을 표시합니다. 정답은 <@kresimir-pendic>다음을 사용하는의 답변이어야 합니다$custom_posts->found_posts
Infinity Media

42

매니가 올바른 설명서 페이지를 연결했지만 post_count잘못되었습니다. 총 게시물 수를 얻으려면 WP_Query"found_posts"를 사용하십시오.

<?php

// The Query
$query = new WP_Query( $args );
$total = $query->found_posts;

3
이 답변이 허용되어야합니다.
Christine Cooper

1
이것은 절대적으로 정답입니다.
Infinity Media

나는 또한 이것이 정답임을 재확인한다. 수락해야합니다.
나는 가장 바보 같은 사람
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.