SELECT DISTINCT date(p.post_date) as post_date
FROM $wpdb->posts p
LEFT JOIN $wpdb->postmeta pm ON p.ID = pm.post_id
WHERE p.post_status='publish'
    AND p.post_type IN ('%s')
ORDER BY p.post_date DESC


它在这里读取帖子的所有日期。我的问题是查询应排除具有meta_value(可以是任何东西)其中meta_key =“ develop”的帖子。我该如何编写查询?

我觉得它将以wp_query的这种形式出现

$args[ 'meta_query' ]= array (

        'relation'= >' AND ',

                array (
                        'key' = > 'respect'
                ),
                array (
                        'key' => 'develop',
                        'compare' => 'NOT EXISTS'

                )
            );
   $query = new Wp_query($args);

最佳答案

因此,您正在尝试获取所有不具有等于“ develop”的meta键的帖子?

您可以这样做:

$query = new WP_Query( array(
    'meta_key' => 'develop',
    'meta_compare' => 'NOT EXISTS'
) );


另外,如果您使用的Wordpress版本低于3.9,请从食典中查看此注释:

“(注意:由于错误#23268,在3.9之前,NOT EXISTS比较必须正确使用值。您必须为value参数提供一些字符串。空字符串或NULL将不起作用。但是,任何其他字符串都可以技巧,并且在使用NOT EXISTS时不会在您的SQL中显示。需要灵感吗?“错误#23268”如何。)”

10-04 13:40