查询元值为空的所有帖子

时间:2016-10-05 作者:Avishay

我想查询meta值为空的帖子。例如,我想得到这三篇没有元值的帖子:enter image description here

已尝试:

$args = array(
    \'post_type\'   => \'attachment\',
    \'posts_per_page\' => 10,
    \'paged\'          => $paged,
    \'meta_query\'  => array(
        array(
            \'key\' => \'_wp_attachment_image_alt\',
            \'value\' => \'\',
            \'compare\' => \'LIKE\'
        )
    )
);
$attachments = new WP_Query($args);
以及:

$args = array(
    \'post_type\'   => \'attachment\',
    \'posts_per_page\' => 10,
    \'paged\'          => $paged,
    \'meta_query\'  => array(
        array(
            \'key\' => \'_wp_attachment_image_alt\',
            \'value\' => null,
            \'compare\' => \'LIKE\'
        )
    )
);
但它不起作用。。

有没有办法解决这个问题?

非常感谢。

2 个回复
最合适的回答,由SO网友:birgire 整理而成

我想你忘记了继承后的状态了。中的默认值WP_Query 正在发布。

您还应该使用= 而不是LIKE, 避免使用LIKE \'%%\' 在SQL查询中。

因此,请尝试添加以下内容:

\'post_status\' => \'inherit\'
以及

\'compare\' => \'=\'
输入查询参数,以匹配空_wp_attachment_image_alt 字符串值。

SO网友:pawan
\'meta_query\' => array(
    array(
     \'key\' => \'_wp_attachment_image_alt\',
     \'compare\' => \'NOT EXISTS\' // this should work...
    ),
)