我正在使用Wordpress来构建一个相当复杂的查询构建器,而且我非常接近完成它,我实际上是基于用户选项构建一个大型查询,如下所示:
(SELECT x_posts.* FROM x_posts LEFT JOIN x_term_relationships
ON (x_posts.ID = x_term_relationships.object_id) WHERE 1=1
AND (x_term_relationships.term_taxonomy_id IN (13) )
AND x_posts.post_type = 'articles' GROUP BY x_posts.ID ORDER BY x_posts.post_date DESC )
UNION
(SELECT * FROM x_posts where post_type = 'articles'
AND post_title LIKE '%he%' )
这给了我一个完整的响应集,我打算根据用户输入使用PHP进行排序。到目前为止,用户已经建立了结果集,但是需要进一步深入挖掘。
我不能为我的生活找出如何将Taxonomies / meta加入到这里,从而允许我使用php来过滤从DB返回的数组。
有没有办法在上面的查询中附加/连接联接?类似的东西:
SELECT * FROM `wp_posts` wp
INNER JOIN `wp_postmeta` wm ON (wm.`post_id` = wp.`ID` AND
wm.`meta_key`='repeatable_fields')
INNER JOIN `wp_term_relationships` wtr ON (wp.`ID` = wtr.`object_id`)
INNER JOIN `wp_term_taxonomy` wtt ON (wtr.`term_taxonomy_id` =
wtt.`term_taxonomy_id`)
INNER JOIN `wp_terms` wt ON (wt.`term_id` = wtt.`term_id`)
AND wtt.taxonomy = 'location' AND wt.`slug`IN ('berlin','canada')
AND wp.post_status = 'publish' AND wm.meta_value LIKE '%July%'
ORDER BY wp.post_date DESC
初始查询可以有多个联合并且非常复杂。我可以通过PHP进行所有过滤。
对不起,如果我错过了什么,我以前不必用WordPress做这种疯狂的事情。
谢谢,