2013-08-28 3 views
0

고급 사용자 정의 필드를 사용하여 사용자 정의 필드를 기반으로 특정 수의 게시물을 제외하는 Wordpress 카테고리의 게시물 목록을 표시하는 데 문제가 있습니다.WordPress의 카테고리 목록에서 특정 게시물을 숨기기

while (have_posts()) : the_post(); 
    $is_taken = get_field('taken_check', $this_id); 
    if ($is_taken!=1) { 
     get_template_part('basket_selection'); 
    } 
endwhile; 

그러나, 그것은 단순히 포스트는 숨 깁니다 여전히 "posts_per_page"기능에 포스트로 간주 :

는 여기에 내가 그 멋지게을 숨 깁니다 사용하고 현재 코드입니다.

예를 들어, 총 20 개의 게시물이 있으며 페이지 당 10 개의 게시물로 제한을 설정했습니다. 위 코드로 3 개의 게시물을 숨기면 페이지 1의 게시물 7 개와 페이지 2의 게시물 10 개만 표시됩니다.

숨겨진 게시물을 무시하고 "게시물" ?

답변

0

나는 category.php 내 wp_query하는 get_posts을 변경하여 그것을 해결하기 위해 관리했습니다.

내가 제 만 표시 taken_check에 질의 보여 현재 카테고리를 검색하고 필터링하는 코드를 추가 = 0

$this_cat = get_category(get_query_var('cat'), 'ARRAY_A', false); 

    foreach ($this_cat as $this_cat){ 
     $this_catid = $this_cat; 
     break; 
    } 

    $args = array(
      'posts_per_page' => 10, 
      'post_type' => 'post', 
     'cat' => $this_catid, 
     'orderby' => 'title', 
     'order' => 'ASC', 
     'paged' => $paged, 
     'meta_query' => array(
      array(
       'key' => 'taken_check', 
       'value' => '0', 
      ) 
     ) 
    ); 

$wp_query = new WP_Query($args); 

그때 단지 기본 루프 시퀀스를 계속했다. 유일하게 이상한 코드는 불필요한 foreach 루프로 현재 게시물을 기반으로하지 않고 현재 페이지를 기반으로 현재 카테고리를 탐지합니다. 아직도 배열 때문에 $ this_cat [0]을 사용할 수없는 이유에 대해 여전히 의아해하고 있습니다. 공백으로 계속 돌아갑니다.

글쎄,하지만 지금은 페이지 매김과 함께 작동하므로 행복 해요 :) 모든 도움에 감사드립니다!

0

시도해보십시오. get_post 쿼리 자체에 사용자 정의 필드 매개 변수를 적용하십시오.

$posts = get_posts(array(
    'posts_per_page' => 10, 
    'post_type' => '<YOUR_POST_TYP>', 
    'meta_key' => 'taken_check', 
    'meta_value' => '<DEFAULT_VALUE_OF_taken_check>' 
)); 

많은 여기 읽을 수는 : http://codex.wordpress.org/Template_Tags/get_posts

+0

음, 그다지 효과가 없었습니다. 이제 클릭 된 카테고리별로 정렬되지 않습니다. category.php 템플리트 아래에 배치 했으므로 범주별로 게시물을 필터링 한 다음 "took_check"가 0 인 게시물을 표시 할 수 있습니다. –

관련 문제