Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress-WP_查询将结果限制为具有完全相同值的帖子_Php_Wordpress - Fatal编程技术网

Php WordPress-WP_查询将结果限制为具有完全相同值的帖子

Php WordPress-WP_查询将结果限制为具有完全相同值的帖子,php,wordpress,Php,Wordpress,在我的一个自定义帖子类型中,我的自定义分类法面临一些问题:我有一个页面,用于检索与页面具有相同分类法字段的自定义帖子 例如,页面和CPT之间共享的自定义分类法之一是“categorie”。在WP_查询中使用tax_查询字段,我可以检索与我的页面具有相同类别字段的帖子,但我似乎无法找到如何获取具有完全相同值的帖子 以下是一些视觉效果,以防您感到困惑: 因此,它们都检查了“chaufage”值,没有其他值 假设现在我有另一个自定义帖子,它选中了“chaufage”,但也选中了“sanitaire

在我的一个自定义帖子类型中,我的自定义分类法面临一些问题:我有一个页面,用于检索与页面具有相同分类法字段的自定义帖子

例如,页面和CPT之间共享的自定义分类法之一是“categorie”。在WP_查询中使用tax_查询字段,我可以检索与我的页面具有相同类别字段的帖子,但我似乎无法找到如何获取具有完全相同值的帖子

以下是一些视觉效果,以防您感到困惑:

因此,它们都检查了“chaufage”值,没有其他值

假设现在我有另一个自定义帖子,它选中了“chaufage”,但也选中了“sanitaire”。我如何告诉我的WP_查询不检索它

我尝试在我的tax_查询数组中使用运算符“AND”(因为默认情况下它是“IN”),但它不起作用

我现在的想法是检索所有分类法值,并说未经检查的值使用“NOT IN”操作符,我想如果我能够做到这一点,这将起作用。我只能获取选中的项,即使使用“hide\u empty”设置为0的wp\u get\u post\u术语

这是我的密码:

$page_id = $wp_query->get_queried_object()->ID;

    $page_category = wp_get_post_terms($page_id, 'categorie', array(
        'hide_empty' => 0
    ));
    // var_dump($page_category);
    $page_client = wp_get_post_terms($page_id, 'client', array(
        'hide_empty' => 0
    ));

    if($page_category) {
        $buffer = array();
        foreach ($page_category as $category) {
            array_push($buffer, $category->slug);
        }

        $page_category = $buffer;
    }

    // var_dump($page_client);

    if($page_client) {
        $buffer = array();
        foreach ($page_client as $client) {
            array_push($buffer, $client->slug);
        }

        $page_client = $buffer;
    }

    $tax_query = array(
        'relation' => 'AND'
    );

    array_push($tax_query, array(
        'taxonomy' => 'categ_article_activite',
        'field' => 'slug',
        'terms' => $page_category,
        'operator' => 'AND'
    ));

    // var_dump($page_client);

    array_push($tax_query, array(
        'taxonomy' => 'client_article_activite',
        'field' => 'slug',
        'terms' => $page_client,
        'operator' => 'AND'
    ));

    // var_dump($tax_query);

    $args = array(
        'post_type' => 'article_activite',
        'meta_key' => '_article_principal',
        'posts_per_page' => 1,
        'meta_value' => 'on',
        'tax_query' => $tax_query,
        'order' => 'ASC'
    );

    $query = new WP_Query($args);
编辑:我忘了提到,我也考虑过对我不想检索的值使用“NOT IN”操作符,但由于将要使用网站的用户可能会添加分类值,因此需要在代码中添加此特定值,这不是一个选项