커스텀 워드 프레스 루프 (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.