【问题标题】:Wordpress: Using post__not_in to exclude custom taxonomy categoryWordpress:使用 post__not_in 排除自定义分类类别
【发布时间】: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), '订单' => $订单 )); }

【问题讨论】:

    标签: php wordpress


    【解决方案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' 属性,使其工作。非常感谢!
      猜你喜欢
      • 2016-11-05
      • 2017-04-16
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多