Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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 WP_Query-meta_value_num没有影响_Php_Wordpress_Wordpress Theming - Fatal编程技术网

Php WP_Query-meta_value_num没有影响

Php WP_Query-meta_value_num没有影响,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,我有一个查询,返回所有自定义帖子类型,按正确字段排序。我现在要做的是给它添加一个过滤器;我要介绍的唯一新项是meta_compare和meta_value_num字段 我的查询是这样的: array(9) { ["post_type"]=> string(16) "my_custom_post_type" ["post_status"]=> string(7) "publish" ["posts_per_page"]=> int(9) ["pag

我有一个查询,返回所有自定义帖子类型,按正确字段排序。我现在要做的是给它添加一个过滤器;我要介绍的唯一新项是meta_compare和meta_value_num字段

我的查询是这样的:

array(9) {
    ["post_type"]=> string(16) "my_custom_post_type"
    ["post_status"]=> string(7) "publish"
    ["posts_per_page"]=> int(9)
    ["paged"]=> int(2)
    ["meta_key"]=> string(3) "age"
    ["meta_value_num"]=> array(2) {
        [0]=> int(3)
        [1]=> int(4)
    }
    ["meta_compare"]=> string(1) "="
    ["orderby"]=> string(14) "meta_value_num"
    ["order"]=> string(3) "ASC"
}
即使我将meta_value_num设置为单个int,而不是数组,它仍然始终返回所有项,而不仅仅是指定年龄的项

更新

根据下面的推荐,我也尝试过这个数组,但也没有成功。它仍然返回自定义帖子类型的所有帖子

array(5) {
    ["post_type"]=>string(16) "my_custom_post_type"
    ["post_status"]=>string(7) "publish"
    ["posts_per_page"]=>int(9)
    ["paged"]=>int(0)
    ["meta_query"]=>array(4) {
        ["key"]=>string(3) "age"
        ["value"]=>array(3) {
            [0]=>int(2)
            [1]=>int(3)
            [2]=>int(4)
        }
        ["compare"]=>string(2) "IN"
        ["type"]=>string(7) "NUMERIC"
    }
}

我不确定,但您可以尝试更改此查询:

$args = array(
    'post_type' => 'my_custom_post_type',
    'post_status' => 'publish',
    'post_per_page' => 9,
    'paged' => 2,
    'meta_query' => array(
        'key' => 'age',
        'value' => array(3, 4),
        'compare' => 'IN',
    ),
    'orderby' => 'meta_value_num',
    'order' => 'ASC',
);

“元查询”必须是数组。该数组包含一个包含键、值和比较(可选类型)的数组。这允许meta_查询包含多个查询(如年龄=5,颜色=红色)

所以这不起作用的原因是meta_查询必须有两个数组

array(8) {
    ["post_type"]=>string(16) "myartlab_gallery"
    ["post_status"]=>string(7) "publish"
    ["posts_per_page"]=>int(9)
    ["paged"]=>int(2)
    ["meta_key"]=>string(3) "age"
    ["orderby"]=>string(14) "meta_value_num"
    ["order"]=>string(3) "ASC"
    ["meta_query"]=>array(1) {
        [0]=>array(4) {
            ["key"]=>string(3) "age"
            ["value"]=>array(3) {
                [0]=>int(4)
                [1]=>int(5)
                [2]=>int(6)
            }
            ["compare"]=>string(2) "IN"
            ["type"]=>string(7) "NUMERIC"
        }
    }
}

我试过了,但运气不好。甚至删除了order和orderby,怀疑它是否冲突,但仍然是nada。用我的结果数组更新原始帖子。仅供参考,我还将此示例添加到了法典中,希望能阻止其他人出现同样的问题。