2015-10-13 79 views
1

我从头开始构建wordpress主题。我有这样的分类:WP查询分类帖子

add_action('init', 'create_cat_slider'); 

function create_cat_slider() { 
    register_taxonomy(
     'sliderType','post', 
     array(
      'label' => __('Slider'), 
      'hierarchical' => true, 
     ) 
    ); 
} 

我有连接到该分类enter image description here

enter image description here

现在我有这个循环如下两个职位。它应该为滑块创建两个按钮(与分类相关的帖子数量应该等于创建的按钮数量)。如上所述,我必须发布与分类相关的帖子。问题是,在执行WHILE之后,我最终会得到7个按钮。过去几个小时一直试图为此解决这个问题。即使在前面的手抄本,作为我的第一个主题,我觉得这很难。

    $args = array(
         'tax_query' => array(
          'taxonomy' => 'sliderType' 
         ) 
        ); 
        $custom_query = new WP_Query($args); 

        if($custom_query->have_posts()) : 
         //echo $custom_query->found_posts; 
         $i = 0; 
         while ($custom_query->have_posts()) : $custom_query->the_post(); 
          if($i == 0) 
           $active = 'class="active"'; 
          else 
           $active = ''; 

          echo '<a href="#" data-target="#bigSlider" data-slide-to="' . $i . '" ' . $active . '></a>'; 
          $i++;  
         endwhile; 
        endif; 
        wp_reset_postdata(); 

LE:代码的当前版本: 分类

add_action('init', 'create_cat_slider'); 

    function create_cat_slider() { 
     register_taxonomy(
      'slider_ype','post', 
      array(
       'label' => __('Slider'), 
       'hierarchical' => true, 
       'rewrite' => array('slug' => 'slidertype') 
      ) 
     ); 
    } 

查询

   $args = array(
        'tax_query' => array 
        (
         array(
          'taxonomy' => 'slidertype', 
          'field' => 'slug', 
          'terms' => 'slidertype' 
         ) 
        ) 
       ); 
       $custom_query = new WP_Query($args); 
+0

如果上面的代码是问题,唯一的解释是有7个帖子返回您的查询。如果你在运行查询后弹出'echo $ custom_query-> post_count;',它会告诉你。其他原因可能是第二次循环运行等。但这不是由上述 – David

+0

引起的问题是,问题是我有2个职位与该分类相关,总共有7个职位。我只想显示那两个帖子。这就是我想要实现的,迄今为止没有成功。 – Darkkz

+0

嗯,一些不正确的,从明显的开始,税务名称更改为小写'slidertype'和定义'slug'在注册功能相同。还要定义wp查询中发布的发布状态。 – David

回答

1

有没有简单的方法来查询附加到特定分类的所有信息。

做到这一点的唯一方法是让附着在分类中的所有条款,然后通过所有单词ID的一个tax_query在你的自定义查询

你可以尝试以下方法:(需要PHP 5.4+而这仅是重要组成部分。另外请注意,你拼写错误sliderType ;-)

$term_ids = get_terms('sliderType', ['fields' => 'ids']); 
$args = [ 
    'tax_query' => [ 
     [ 
      'taxonomy' => 'sliderType', 
      'terms' => $term_ids 
     ] 
    ] 
]; 
$custom_query = new WP_Query($args); 

如果,然而,仅仅需要从一个分类一个特定术语查询的帖子,你可以简单地只是通过术语ID或嵌入字段值与查询相关

$args = [ 
    'tax_query' => [ 
     [ 
      'taxonomy' => 'sliderType', 
      'field' => 'slug', 
      'terms' => 'relevant-term-slug' 
     ] 
    ] 
]; 
$custom_query = new WP_Query($args); 
+0

就是这样,让它工作,我也懂得如何处理分类法。感谢很多伴侣:) – Darkkz

+0

我的荣幸,享受;-) –