获取每个帖子的多个元数据条目排序的自定义wp-posts

时间:2014-04-08 10:12:16

标签: php mysql wordpress custom-post-type

我们有一个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!

1 个答案:

答案 0 :(得分:0)

您可以使用WP_Query()get_post_meta()

这可以帮到你。