我们有一个wordpress网站,我们想要显示已经或已经开始但尚未完成的事件列表。
因此我们制作了一个名为" events"的自定义帖子类型。每个事件都有自己的wp_posts.ID,并链接到2(或更多)wp_postmeta行。其中一行的键值包含" event_start" (键)和unix时间戳"作为价值。其中一个包含几乎相同,但接着" event_end"以时间戳作为值。
现在我们想要查询获取按startdate排序的所有活动和提交事件。
我们尝试了一些不同的方法,我认为这很接近,但是没有用,因为当我们进行子选择查询时,wp_post.ID是不可用的。
$sql = "
SELECT
$wpdb->posts.*, (
SELECT
$wpdb->postmeta.meta_value
FROM
$wpdb->postmeta
WHERE
$wpdb->posts.ID = $wpdb->postmeta.post_id
AND
$wpdb->postmeta.meta_key = 'event_start'
) AS event_start,
(
SELECT
$wpdb->postmeta.meta_value
FROM
$wpdb->postmeta
WHERE
$wpdb->posts.ID = $wpdb->postmeta.post_id
AND
$wpdb->postmeta.meta_key = 'event_end'
) AS event_end
FROM
$wpdb->posts, $wpdb->postmeta
WHERE (
event_start > ".time()."
)
OR (
event_start < ".time()."
AND
event_end > ".time()."
)
ORDER BY
event_start ASC
LIMIT 0,3";
谁能帮助我们弄清楚如何获取这些数据?我们应该删除所有代码并重新开始吗?
日Thnx!