Php 从WP_查询中排除WooCommerce产品类别

Php 从WP_查询中排除WooCommerce产品类别,php,wordpress,woocommerce,categories,product,Php,Wordpress,Woocommerce,Categories,Product,我已将以下参数定义为查询的一部分: $args = apply_filters('woocommerce_related_products_args', array( 'post_type' => 'product', 'author' => $artist, 'post_status' => 'publish', 'meta_query'

我已将以下参数定义为查询的一部分:

$args = apply_filters('woocommerce_related_products_args', array(
        'post_type'             => 'product',
        'author'                => $artist,
        'post_status'           => 'publish',
        'meta_query'            => array(
            array(
                'key'           => '_visibility',
                'value'         => array('catalog', 'visible'),
                'compare'       => 'IN'
        )
    )
) );
$products = new WP_Query( $args );
我需要从查询中排除名为杂志(slug“杂志”)或ID351的类别

我一直试图在“=>数组('Magazine')中包含
'category\uuuu not\u,所以它看起来像这样:

$args = apply_filters('woocommerce_related_products_args', array(
            'post_type'             => 'product',
            'author'                => $artist,
            'post_status'           => 'publish',
            'category__not_in'      => array('magazines'),
            'meta_query'            => array(
                array(
                    'key'           => '_visibility',
                    'value'         => array('catalog', 'visible'),
                    'compare'       => 'IN'
            )
        )
    ) );
    $products = new WP_Query( $args );
但这似乎不起作用


我做错了什么?

您应该使用
类别\u而不是
值中的\u作为这样的数组

$query=newwp_查询(数组('category_unot_in'=>数组('magazies'))

有关详细信息,请查看此

因此,请将您的代码更新为

$args = apply_filters('woocommerce_related_products_args', array(
            'post_type'             => 'product',
            'author'                => $artist,
            'post_status'           => 'publish',
            'category__not_in'      => array('magazines')
            'meta_query'            => array(
                array(
                    'key'           => '_visibility',
                    'value'         => array('catalog', 'visible'),
                    'compare'       => 'IN'
            )
        )
    ) );
    $products = new WP_Query( $args );

让我知道它是否对您有效。

您应该使用
中的
category\uuu not\u作为如下数组

$query=newwp_查询(数组('category_unot_in'=>数组('magazies'))

有关详细信息,请查看此

因此,请将您的代码更新为

$args = apply_filters('woocommerce_related_products_args', array(
            'post_type'             => 'product',
            'author'                => $artist,
            'post_status'           => 'publish',
            'category__not_in'      => array('magazines')
            'meta_query'            => array(
                array(
                    'key'           => '_visibility',
                    'value'         => array('catalog', 'visible'),
                    'compare'       => 'IN'
            )
        )
    ) );
    $products = new WP_Query( $args );

让我知道它是否适用于您。

产品类别是一种自定义分类法
Product\u cat

因此,您需要通过一个简单的
tax\u查询
这样做:

$args = apply_filters('woocommerce_related_products_args', 
    array(
        'post_type'             => 'product',
        'author'                => $artist,
        'post_status'           => 'publish',
        'meta_query'            => array(
             array(
                'key'           => '_visibility',
                'value'         => array('catalog', 'visible'),
                'compare'       => 'IN'
            ),
        ),
        'tax_query'            => array(
            array(
                'taxonomy' => 'product_cat',
                'field'    => 'slug', // Or 'name' or 'term_id'
                'terms'    => array('magazines'),
                'operator' => 'NOT IN', // Excluded
            )
        )
    ) 
);

$products = new WP_Query( $args );

产品类别是一种自定义分类法
Product\u cat

因此,您需要通过一个简单的
tax\u查询
这样做:

$args = apply_filters('woocommerce_related_products_args', 
    array(
        'post_type'             => 'product',
        'author'                => $artist,
        'post_status'           => 'publish',
        'meta_query'            => array(
             array(
                'key'           => '_visibility',
                'value'         => array('catalog', 'visible'),
                'compare'       => 'IN'
            ),
        ),
        'tax_query'            => array(
            array(
                'taxonomy' => 'product_cat',
                'field'    => 'slug', // Or 'name' or 'term_id'
                'terms'    => array('magazines'),
                'operator' => 'NOT IN', // Excluded
            )
        )
    ) 
);

$products = new WP_Query( $args );

category_unot_uin以数组作为参数,将其设为数组('Magazine')并进行d检查。。!!您好,更新了我的代码,但仍然不适用于我..category_u_unot_uin以数组作为参数,将其设为数组('杂志')并进行d检查。。!!您好,更新了我的代码,但仍然不适用于我..您好,非常感谢,但不适用于我,类别仍在显示..请尝试使用类别id并尝试注释出元查询部分。然后检查,它是否工作?所以我尝试了ID,也注释了meta query部分,并用slug或ID再次尝试,但这一切似乎都不起作用。类别仍在显示。然后,请检查筛选器是否实际工作,或者是否以某种方式被覆盖。您好,非常感谢,但不,没有从我这里工作,类别仍在显示。请尝试使用类别id,并尝试注释元查询部分。然后检查,它是否工作?所以我尝试了ID,也注释了meta query部分,并用slug或ID再次尝试,但这一切似乎都不起作用。类别仍在显示。然后请检查筛选器是否实际工作,或者是否被某些内容覆盖。@JoeBloggs我有一个错误…我没有注意,但它必须是产品类别的
税务查询
,而不是
元查询
…我已更新并完成…请再试一次搞定了。现在它工作得很好。非常感谢你的帮助@JoeBloggs我有一个错误…我没有注意到,但它必须是产品类别的
tax\u查询
,而不是
meta\u查询
…我已经更新并完成了…重新尝试一下,你搞定了吗。现在它工作得很好。非常感谢你的帮助!