带有META_QUERY的WP_QUERY无结果

时间:2018-12-14 作者:Barry Poore

我有一个自定义的帖子类型,可以使用WP\\u Query和以下数组获取它们:

$args = array(  
       \'post_type\' => \'projects\',
       \'post_status\' => \'publish\',
       \'posts_per_page\' => 10,
   );
这很好,但现在我在帖子类型中添加了一个名为“featured\\u project”的新字段,该字段是一个值为1的复选框,因此为了只获取选中复选框的结果,我添加了一个meta\\u查询,但使用此meta\\u查询,我没有得到任何结果,也无法找出原因:

$args = array(  
       \'post_type\' => \'projects\',
       \'post_status\' => \'publish\',
       \'posts_per_page\' => 10,
       \'meta_query\' => array(
        \'relation\' => \'AND\',
            array(
                \'key\'     => \'featured_project\',
                \'value\'   => 1,
                \'compare\' => \'=\',
            ),
        )
   );
我不知道为什么,我已经在google上搜索了一次又一次,我认为我的代码看起来是正确的,但添加了meta\\u查询后,我只得到了一个空集,有人能告诉我吗?我使用的是WordPress v5,PHP7.1

我刚刚尝试了一种新的数组格式,并将“featured\\u project”复选框的值更改为“featured”,但仍然没有得到任何结果。

   $args = array(  
       \'post_type\' => \'projects\',
       \'post_status\' => \'publish\',
       \'posts_per_page\' => 10,
       \'meta_query\' => array(
            array(
                \'key\'     => \'featured_project\',
                \'value\'   => \'featured\',
                \'compare\' => \'=\',
            )
        )
   );
并尝试:

$args = array(  
       \'post_type\' => \'projects\',
       \'post_status\' => \'publish\',
       \'posts_per_page\' => 10,
       \'meta_query\' => array(
        \'relation\' => \'AND\',
            array(
                \'key\'     => \'featured_project\',
                \'value\'   => \'featured\',
                \'compare\' => \'=\',
            ),
        )
   );

1 个回复
SO网友:Michae Pavlos Michael

您的代码看起来正确。您是否检查了存储的元数据以确认存储的值为1?此外,您是否尝试过与字符串值进行比较,例如“1”而不是“1”?只是在黑暗中捅了一刀,但值得一试。

假设存储的值是正确的,并且这些值只能是1,则可以尝试使用:-

\'compare\' => \'LIKE\'
LIKE通常作为部分匹配,但在您的情况下,它不会有任何区别。

相关推荐