自定义高级过滤

时间:2017-06-14 15:58:30

标签: php mysql wordpress

我正在使用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做这种疯狂的事情。

谢谢,

0 个答案:

没有答案