我正在开发一个基于原始日历的插件。我的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上搜索了一下,没有出现具有此功能的插件。
最合适的回答,由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);