如何使用POSTS_子句编写INTER JOIN?

时间:2020-05-28 作者:robskrob

有人能告诉我如何使用此SQL实现相同的结果吗:

SELECT *
FROM wp_2_posts
INNER JOIN wp_2_icl_translations
ON wp_2_icl_translations.element_id = wp_2_posts.id
AND wp_2_icl_translations.language_code = \'en\'
WHERE wp_2_posts.post_type = \'properties\';
使用posts_clauses ? 换句话说,我希望posts\\u子句过滤器执行与上面SQL中显示的查询相同的查询。

我正在尝试查询只使用英语的帖子。

1 个回复
SO网友:Mort 1305

首先,他的过滤器在the manual 并在中找到the code. 如果您对挂钩和函数有疑问,可以从手册和代码开始寻找答案。这个post_clauses 钩子通过关联数组进行过滤,因此只需根据需要操纵where和join索引即可。(根据手册和代码,此过滤器无法修改表名。)

而且,这种问题已经been answered, 我想让您注意到关于编码示例的讨论。

UPDATE: 好的,@robskrob,给你!同样,这不会将查询对象初始化为空,也不会过滤表名。

add_filter(\'post_clauses\', function($clauses){
    $clauses[\'join\'] .= " INNER JOIN wp_2_icl_translations ON wp_2_icl_translations.element_id = wp_2_posts.id AND wp_2_icl_translations.language_code = \'en\'";
    $clauses[\'where\'] .= " AND wp_2_posts.post_type = \'properties\'";
    return $clauses;
});