Wordpress:使用 post__not_in 排除自定义分类类别
Posted
技术标签:
【中文标题】Wordpress:使用 post__not_in 排除自定义分类类别【英文标题】:Wordpress: Using post__not_in to exclude custom taxonomy category 【发布时间】:2017-07-22 16:42:42 【问题描述】:我正在尝试从循环中排除自定义分类类别(slug:private-case-study,ID:5)中的项目。我正在使用以下代码,有没有人有建议或想法为什么它不起作用?提前致谢!
// 获取当前页面ID $this_post = $post->ID; $private_case_study = get_term_by('slug', '私人案例研究', 'mgt_portfolio_filter'); // 显示特定类别的项目 if($category_name == '') $wp_query = 新的 WP_Query(数组( 'post_type' => 'mgt_portfolio', 'posts_per_page' => $posts_per_page, 'orderby' => $orderby, '订单' => $订单, 'post__not_in' => 数组($this_post, $private_case_study) )); 别的 $wp_query = 新的 WP_Query(数组( 'post_type' => 'mgt_portfolio', 'tax_query' => 数组( 大批( '分类' => 'mgt_portfolio_filter', '字段' => '蛞蝓', '条款' => $category_name, ), ), 'posts_per_page' => $posts_per_page, 'orderby' => $orderby, 'post__not_in' => 数组($this_post, $private_case_study), '订单' => $订单 ));【问题讨论】:
【参考方案1】://获取当前页面ID $this_post = $post->ID; $private_case_study = get_term_by('slug', 'private-case-study', 'mgt_portfolio_filter');
// Show items from specific category
if($category_name == '')
$wp_query = new WP_Query(array(
'post_type' => 'mgt_portfolio',
'posts_per_page' => $posts_per_page,
'orderby' => $orderby,
'order' => $order,
'post__not_in' => array($this_post)
));
else
$wp_query = new WP_Query(array(
'post_type' => 'mgt_portfolio',
'tax_query' => array(
array(
'taxonomy' => 'mgt_portfolio_filter',
'field' => 'slug',
'terms' => $category_name,
),
),
'posts_per_page' => $posts_per_page,
'orderby' => $orderby,
'post__not_in' => array($this_post),
'order' => $order
));
【讨论】:
【参考方案2】:post__not_in
接受一个 ID 数组并排除它们。您想使用category__not_in
,它采用一组类别 ID 并将它们排除在外。
看看documentation。
【讨论】:
对不起,我应该澄清一下,我正在尝试排除自定义分类类别中的帖子。category__not_in
会做同样的事情吗?
我可能会误解你,但这应该是category__not_in
所做的。它将采用一系列类别 ID,并且不显示这些类别中的帖子。 post__not_in
采用一组帖子 ID 并且不显示这些单独的帖子。因此,如果“私人案例研究”的 ID 为 1,并且您包含 'category__not_in' => array(1);
,它将排除该类别中的所有帖子。
啊,明白了,谢谢!我已经尝试添加它,但它仍然显示该类别中的项目。这是我添加的内容-'post__not_in' => array($this_post), 'category__not_in' => array(5)
我遗漏了什么?这不是默认的 Wordpress 博客文章类别,它是主题附带的自定义类别。我是否必须指定类别类型或其他内容?感谢您的帮助!
我可能给你指错了方向。看看answer here。这有帮助吗?
这绝对有帮助,非常感谢!我将'tax_query' => array'
添加到if
语句中,并使用了'operator' => 'NOT IN'
属性,使其工作。非常感谢!以上是关于Wordpress:使用 post__not_in 排除自定义分类类别的主要内容,如果未能解决你的问题,请参考以下文章