2017-02-06 42 views
1

我想创建一个用于自定义文章类型的分类术语的foreach循环。从WP_Query中排除特定术语

更具体地说,我想要一个查询所有产品类别的循环,但不是“特殊优惠”类别而不是类别子类别。如果产品没有分类查询,并按ASC顺序对所有产品进行排序(不分别对产品和类别进行分类,所有产品必须同时分类)。

那么我应该如何处理我的代码才能使其按需工作?

当前代码:

<?php 

$args = array(
    'post_type' => 'products', 
    'showposts' => -1, 
    'post_status' => 'publish', 
    'parent' => 0, 
    'hide_empty' => true, 
    'tax_query' => array(
     'taxonomy' => 'categories', 
     'field' => 'slug', 
     'terms' => array('special-offers', 'other-terms'), 
     'operator' => 'NOT IN', 
    ), 
); 

$terms = get_terms('categories', $args); 

foreach ($terms as $term) : 

    echo '<h2>' . $term->name . '</h2>'; 

endforeach; 

?> 
+0

您正在提供一个WP查询配置数组到get_terms,但这不是这个方法所要做的。你可以在这里使用哪些有效的选择标准,在https://developer.wordpress.org/reference/functions/get_terms/ – CBroe

+0

下列出。好的,我找到了它。但问题是我如何显示帖子,哪些没有类别。不幸的是,我不熟悉wordpress codex。所以它会帮助我得到一个代码示例。 – Jack

+0

你有没有试过研究那个? https://www.google.com/search?q=wordpress+query+get+posts+without+taxonomy – CBroe

回答

1

最终的解决方案是将排除和术语ID添加到分类学参数中。既然它是用于分类,它使用foreach循环。

$args = array(
    'parent' => 0, 
    'hide_empty' => true, 
    'exclude' => 13, 
); 

和答案如何输出没有分类自定义后类型职位可以在这里找到:http://www.codeforest.net/wordpress-tip-show-posts-no-category-term

感谢CBroe和STE自己的时间。

+0

很高兴你把它分类。是唯一一个你想要的那个ID排除?我建议再看看你最初的想法。如果ID已更改,则硬编码ID将会中断,或者您需要排除其他ID,您必须继续添加以排除。尝试寻找更具活力的东西。 – ste

1

报税查询应该寻找另一个数组中。

'tax_query' => array(
    array(
    'taxonomy' => 'categories', 
    'field' => 'slug', 
    'terms' => array('special-offers', 'other-terms'), 
    'operator' => 'NOT IN', 
    ) 
), 

其余的似乎没关系。 查看关于此的WP_Codex

+0

仍然是相同的结果。不排除术语。 – Jack

+0

嗯。至少我们现在走在正确的轨道上。对不起,目前没有免费的帮助你调试这个问题 – ste