获取具有特定元数据的所有帖子

时间:2011-02-25 作者:Kreker

我正在开发一个基于原始日历的插件。我的wordpress基于真实事件,我想在日历上跟踪主题。

因此,我在帖子中添加了一个自定义字段,该字段是事件的结束日期(或Subcribe的最后一天),值为日期(如2010年2月25日)。

现在,我想在日历上显示当天结束的所有事件,而不是每天创建的帖子
如何在此查询中获取帖子的元数据值?

 // Get days with posts
$dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date)
    FROM $wpdb->posts WHERE MONTH(post_date) = \'$thismonth\'
    AND YEAR(post_date) = \'$thisyear\'
    AND post_type = \'post\' AND post_status = \'publish\'
    AND post_date < \'" . current_time(\'mysql\') . \'\\\'\', ARRAY_N);
它必须选择所有带有我自定义元值的帖子。

希望我做这件事不是为了什么,我在google上搜索了一下,没有出现具有此功能的插件。

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

我想你可以做一个左连接:

left join 
    $wpdb->postmeta my_field_meta on (p.ID = my_field_meta.post_id and 
                                      my_field_meta.meta_key = \'subscribe\') 
其中“订阅”是自定义字段的名称。因此,您的代码可能是:

 $dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(p.post_date)
    FROM $wpdb->posts as p
    LEFT JOIN 
        $wpdb->postmeta my_field_meta on (p.ID = my_field_meta.post_id and 
                                          my_field_meta.meta_key = \'subscribe\')     
    WHERE MONTH(p.post_date) = \'$thismonth\'
    AND YEAR(p.post_date) = \'$thisyear\'
    AND p.post_type = \'post\' AND p.post_status = \'publish\'
    AND p.post_date < \'" . current_time(\'mysql\') . \'\\\'\', ARRAY_N);

结束

相关推荐