【发布时间】:2013-04-09 12:28:23
【问题描述】:
我有一个自定义帖子类型 koncerty 和自定义日期字段 datum,我目前正在使用此查询检索帖子(效果很好):
$date = date("Ymd");
$sql = <<<SQL
SELECT p.ID, p.post_content, p.post_title, datum.meta_value as datum, featured.meta_value as featured
FROM {$wpdb->posts} p
LEFT JOIN {$wpdb->postmeta} featured
ON featured.post_id = p.ID
AND featured.meta_key = 'featured'
LEFT JOIN {$wpdb->postmeta} datum
ON datum.post_id = p.ID
AND datum.meta_key = 'datum'
WHERE
p.post_type = 'koncert'
AND p.post_status = 'publish'
AND datum.meta_value >= '$date'
ORDER BY featured DESC, datum ASC, RAND()
LIMIT 3
SQL;
$posts = $wpdb->get_results( $sql );
我想使用 ACF 转发器字段插件使 datum 字段可重复。我应该如何修改查询,以多次获取帖子?即,我将有一个包含三个日期的节目,并且需要像这样显示它
- 1.1.2013 - 显示 1 - 信息
- 2.1.2013 - 显示 1 - 信息
- 3.1.2013 - 显示 1 - 信息
这里有一些教程:http://www.advancedcustomfields.com/resources/tutorials/querying-the-database-for-repeater-sub-field-values/,但由于我的 sql 知识有限,我无法将它们放在一起。
谢谢
【问题讨论】:
-
您使用 SQL 查询而不是自定义 wp_query 是否有原因?
-
是的,wp_query 方式要复杂得多:pastebin.com/yix0u2CG。查询基本上应该做的是尝试找到三个节目,它们是
featured,如果没有至少三个,则选择随机节目总共三个,并按日期排序。