루프 게시물을 계산합니까 (WP_Query)?


10

게시물의 NO를 표시하기 위해이 방법을 시도했습니다.

<?php 
 $news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );
  if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post();

  $count = $news_2->post_count;

  ?>

    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>



    <?php } } ?> <?php wp_reset_query(); ?> 

포스트의 NO = 0이면 이것을 표시해야합니다 :-

<?php 
 $news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );
  if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post();

  $count = $news_2->post_count;

  if ($count  == '0') {

  ?>
  <li><h3><a href="javascript:void(0)">No Post</a></h3></li>

  <?php
  } else {
  ?> 
    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>

<?php  }  ?>

    <?php } } ?> <?php wp_reset_query(); ?> 

그러나 총 게시물 수 대신 아무것도 얻지 못했습니다.

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


2
이봐, 돌아와서 당신에게 제공된 두 가지 답변 중 하나에 무게를 달고 싶습니까?
helgatheviking

경우 어떤 대답의 당신에게 도움이되었다, 다음을 받아들이는 것이 좋습니다. » 누군가 내 질문에 대답 할 때 어떻게해야합니까? «및 / 또는» 투표가 중요한 이유는 무엇입니까? «, WordPress Development 모델에 대한 자세한 내용은 도움말 센터를 참조하십시오 .
Nicolai

답변:


23

일부 추가 정보 WP_Query는 이미 게시물을 계산했기 때문에 게시물을 다시 계산할 필요가 없습니다 . 이를 명확히하기 위해, 클래스 WP_Query속성 의 일부 정보 는»속성«섹션에 있습니다.

$ post_count
표시되는 게시물 수.

$ found_posts
현재 쿼리 매개 변수와 일치하는 발견 된 총 게시물 수

이것이 의미하는 것은

  1. $post_count총 게시물 수를 제공하지 않습니다. 게시물 수 post_per_page보다 적거나 마지막 페이지에 있고 게시물 수가 적지 않은 경우 매개 변수로 정의한 게시물 수를 제공합니다 .
  2. $found_posts특정 검색어와 관련된 총 게시물 수를 얻는 데 사용할 수 있습니다. 따라서 다시 계산할 필요가 없습니다.

귀하의 경우 다음 $count과 같이 변수 의 총 개수를 얻을 수 있습니다 .

$count = $news_2->found_posts;

그 외에도 @helgatheviking은 귀하의 질문에 표시 한 것에서 추가 조건이 필요하지 않지만 have_posts()제안한 조건에 따라 이미 조건에 따라 메소드를 사용할 수 있다는 것이 옳습니다 .


4
found_posts 속성에 +1 매일 새로운 것을 배웁니다! :)
helgatheviking

4

게시물이없는 경우 다른 것을 표시하기 위해 게시물 수를 세지 않아도됩니다. 수표 의 else일부만 사용할 수 있습니다 if($news_2->have_posts()).

$news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );

if ( $news_2->have_posts() ) { 

    while ( $news_2->have_posts() ) { 

        $news_2->the_post();

    ?> 

    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>

<?php  } 

    } else { ?>

    <li><h3>No Post</h3></li>

    <?php } ?> 

<?php wp_reset_query(); ?> 

그러나 실제로 반환 된 게시물 수를 계산해야하는 경우

$count = count( $news_2->posts );
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.