ACF复选框字段的META_QUERY不能正常工作

时间:2018-08-15 作者:user7111390

meta\\u查询复选框字段的值=0有问题:

$args = [
                \'post_type\'        => \'post\',
                \'post_status\'      => \'publish\',
                \'posts_per_page\'   => - 1,
                \'meta_query\' => array(
                    array(
                        \'key\'     => \'test_field\',
                        \'value\'   => 0,
                        \'compare\' => \'LIKE\',
                    ),
                ),
            ];
如果值为2,3等,此代码工作正常。但当我将meta\\u query值设置为0或1时,它工作错误,并且我得到的所有帖子中都没有空的test\\u字段。

我如何才能只获得值为0或1的帖子?我已尝试在或=中更改比较,但不是复选框字段的文字

2 个回复
SO网友:ngearing

如果需要一个数字作为值,可以设置type 参数到NUMERIC.

否则0 评估为false.

然后您可以使用IN 如果只需要设置范围,请进行比较。

$test_query = new WP_Query(
        [
            \'meta_query\' => [
                [
                    \'key\'     => \'test_key\',
                    \'value\'   => [ 0, 1 ],
                    \'compare\' => \'IN\',
                    \'type\'    => \'NUMERIC\',
                ],
            ],
        ]
    );

SO网友:nmr

ACF插件将复选框值存储为序列化数组。

// array(0)
a:1:{i:0;s:1:"0";}
// array(0, 1, 2)
a:3:{i:0;s:1:"0";i:1;s:1:"1";i:2;s:1:"2";}
我如何才能只获得值为0或1的帖子?

您可以使用搜索这些围绕值的帖子", 但这是一个缓慢的查询。最好是储存test_field 作为单个值。如果不想退出ACF复选框,请更改$args

\'meta_query\' => array(
    \'relation\' => \'OR\',
    array(
        \'key\'     => \'test_field\',
        \'value\'   => \'"0"\',
        \'compare\' => \'LIKE\',
    ),
    array(
        \'key\'     => \'test_field\',
        \'value\'   => \'"1"\',
        \'compare\' => \'LIKE\',
    ),
),

结束

相关推荐

ACF复选框字段的META_QUERY不能正常工作 - 小码农CODE - 行之有效找到问题解决它

ACF复选框字段的META_QUERY不能正常工作

时间:2018-08-15 作者:user7111390

meta\\u查询复选框字段的值=0有问题:

$args = [
                \'post_type\'        => \'post\',
                \'post_status\'      => \'publish\',
                \'posts_per_page\'   => - 1,
                \'meta_query\' => array(
                    array(
                        \'key\'     => \'test_field\',
                        \'value\'   => 0,
                        \'compare\' => \'LIKE\',
                    ),
                ),
            ];
如果值为2,3等,此代码工作正常。但当我将meta\\u query值设置为0或1时,它工作错误,并且我得到的所有帖子中都没有空的test\\u字段。

我如何才能只获得值为0或1的帖子?我已尝试在或=中更改比较,但不是复选框字段的文字

2 个回复
SO网友:ngearing

如果需要一个数字作为值,可以设置type 参数到NUMERIC.

否则0 评估为false.

然后您可以使用IN 如果只需要设置范围,请进行比较。

$test_query = new WP_Query(
        [
            \'meta_query\' => [
                [
                    \'key\'     => \'test_key\',
                    \'value\'   => [ 0, 1 ],
                    \'compare\' => \'IN\',
                    \'type\'    => \'NUMERIC\',
                ],
            ],
        ]
    );

SO网友:nmr

ACF插件将复选框值存储为序列化数组。

// array(0)
a:1:{i:0;s:1:"0";}
// array(0, 1, 2)
a:3:{i:0;s:1:"0";i:1;s:1:"1";i:2;s:1:"2";}
我如何才能只获得值为0或1的帖子?

您可以使用搜索这些围绕值的帖子", 但这是一个缓慢的查询。最好是储存test_field 作为单个值。如果不想退出ACF复选框,请更改$args

\'meta_query\' => array(
    \'relation\' => \'OR\',
    array(
        \'key\'     => \'test_field\',
        \'value\'   => \'"0"\',
        \'compare\' => \'LIKE\',
    ),
    array(
        \'key\'     => \'test_field\',
        \'value\'   => \'"1"\',
        \'compare\' => \'LIKE\',
    ),
),

相关推荐