【问题标题】:I have query to retrieve all posts in wordpress but how can i check the condition for post meta_key =“develop” and meta_value='anything'我有查询以检索 wordpress 中的所有帖子,但我如何检查帖子 meta_key =“develop”和 meta_value='anything' 的条件
【发布时间】:2014-08-12 15:31:56
【问题描述】:
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_key="develop" 的 meta_value(它可以是任何东西)的帖子。我该如何编写查询?

我觉得 wp_query 会采用这种形式

$args[ 'meta_query' ]= array (

        'relation'= >' AND ',

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

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

【问题讨论】:

    标签: php mysql sql database wordpress


    【解决方案1】:

    所以你想获取所有没有元键等于“develop”的帖子?

    你可以这样做:

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

    此外,如果您使用的 Wordpress 版本低于 3.9,请参阅 Codex 中的此说明:

    "(注意:由于错误 #23268,在 3.9 之前,NOT EXISTS 比较需要 value 才能正常工作。您必须为 value 参数提供一些字符串。空字符串或 NULL 将不起作用。但是,任何其他字符串可以解决问题,并且在使用 NOT EXISTS 时不会出现在您的 SQL 中。需要灵感吗?'bug #23268' 怎么样。)"

    【讨论】:

    • 我正在尝试排除具有 meta_key ="develop" 的 meta_value(它可以是任何值)的帖子。我的意思是如果设置了 meta_key develop 的 meta_value 它应该排除。
    • 它应该阅读所有其他可能有其他元键的帖子,我怎么能在 sql 查询中写出来
    猜你喜欢
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多