2011-09-28 3 views
4

게시물을 표시하지 않도록 카테고리를 제외해야합니다. 포트폴리오 분류 에 분류 카테고리를 추가했으며 포트폴리오 카테고리 아래에 액세서리 (고양이 ID 19)를 추가했습니다.query_post 맞춤 분류에 카테고리 제외

위로 가기에서 액세서리 카테고리의 게시물을 어떻게 제외합니까? 내가 시도 : 'category' => -19,하지만 를 작동하지 않았다 여기 내 코드입니다 :

 <?php 
       $args=array(
        'post_type'   => 'items', 
        'post_status'  => 'publish', 
        'showposts'   => intval(get_anolox_option_by('an_homep_count', 3)), 
        'caller_get_posts' => 1, 
        'category'   => -19, 
        'paged'    => $paged, 
       ); 
       query_posts($args); 

       $end = array(3,6,9,12,15,18,21,24,27,30,33,36,39,42,45); 

       $i = 0; 
       while (have_posts()): the_post(); 
       global $post; 
       $i++; 
      ?> 

    MY CODE HERE, NO NEED TO SHOW SINCE IT'S VERY LONG 



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

편집 //이 코드를 시도했지만 여전히 작동하지 않았다 :

<?php 
       $args=array(
        'post_type'   => 'items', 
        'post_status'  => 'publish', 
        'showposts'   => intval(get_anolox_option_by('an_homep_count', 3)), 
        'caller_get_posts' => 1, 

        'paged'    => $paged, 
        'tax_query'   => array(
         'taxonomy' => 'portfolio-category', 
         'terms' => 'accessories', 
         'field' => 'slug', 
         'operator' => 'NOT IN') 
       ); 
       query_posts($args); 
+1

문제는 ** clifgriffin ** 말했듯이 중첩 배열에 관한 것입니다. http://stackoverflow.com/a/9829059/2770718 –

답변

0

category 인수가 내장 분류 분류를위한 것입니다. 변경 당신의 $args 때문에 사용자 정의 분류를 참조처럼 :

$args=array(
    'post_type'   => 'items', 
    'portfolio-category' => 'accessories', 
    'post_status'  => 'publish', 
    'showposts'   => intval(get_anolox_option_by('an_homep_count', 3)), 
    'paged'    => $paged 
); 

는 가정 다음

  1. 당신은 items라는 사용자 지정 게시 유형을 가지고있다.
  2. portfolio-category 분류 체계가 등록되어 있습니다.
  3. accessories은 분류법에 추가됩니다.

업데이트 : 늦게 도착합니다. 위와 같이 포트폴리오 범주를 포함하지 않고 accessories 포트폴리오를 제외하는 OP의 실제 질문에 대답하려면 tax_query 인수를 사용할 수 있습니다.

$args=array(
    'post_type'   => 'items' 
    'post_status'  => 'publish', 
    'showposts'   => intval(get_anolox_option_by('an_homep_count', 3)), 
    'paged'    => $paged, 
    'tax_query'   => array(
     'taxonomy' => 'portfolio-category', 
     'terms' => 19,  
     'field' => 'id', 
     'operator' => 'NOT IN' 
    ) 
); 
+0

나는 카테고리 카테고리를 제외하고 대신 액세서리 카테고리에서만 게시물을 표시했지만, 내가 원하는 것은 '액세서리'카테고리에서 게시물을 제외하는 것입니다. – Laurize

+0

gah .. .got it backwards :) 나는 나의 대답을 업데이트했다. – Pat

+0

나는 그 코드를 시도했지만 작동하지 않았다, 그것은 여전히 ​​액세서리 카테고리의 게시물을 보여 주었다. 나는 당신이 내게 준 코드를 기반으로 내 포스트를 업데이트했다. – Laurize

0

문제는 중첩 층 것으로 보인다 : accessories를 제외하는 다음과 같은 코드가 될 것이다. 에

$args=array(
    'post_type'   => 'items' 
    'post_status'  => 'publish', 
    'showposts'   => intval(get_anolox_option_by('an_homep_count', 3)), 
    'paged'    => $paged, 
    'tax_query'   => array(
     'taxonomy' => 'portfolio-category', 
     'terms' => 19,  
     'field' => 'id', 
     'operator' => 'NOT IN' 
    ) 
); 

변경해보십시오 :

$args=array(
    'post_type'   => 'items' 
    'post_status'  => 'publish', 
    'showposts'   => intval(get_anolox_option_by('an_homep_count', 3)), 
    'paged'    => $paged, 
    'tax_query'   => array(
     array(
      'taxonomy' => 'portfolio-category', 
      'terms' => 19,  
      'field' => 'id', 
      'operator' => 'NOT IN' 
     ) 
    ) 
); 

이 나를 위해 일했다. : -/

1
$args = array(
     'post_type'=>'items', 
     'order'=>'ASC', 
     'posts_per_page'=>3 
     'tax_query' => array(
      array(
      'taxonomy' => 'portfolio-category', 
      'field' => 'id', 
      'terms' => 19, 
      'operator' => 'NOT IN', 
      ), 
     ) 
)); 
query_posts($args); 

항목 = 사용자 정의 포스트 유형

포트폴리오 카테고리 = 내 사용자 정의 분류

for multiple category exclude use 'terms' => array('19,20'), 
+0

이것은 녹색 응답이어야합니다. 이제 막 완벽하게 작동하여 하루를 절약했습니다! –

관련 문제