我正在开发一个Wordpress插件,我创建了一些自定义帖子,我使用元数据将它们链接在一起。
在管理员方面,我希望能够使用这些关系过滤帖子列表。我想我需要使用INNER JOIN,但我不知道如何。
现在我只有:
add_filter( 'parse_query', 'mypostsfilteringfunction' );
function mypostsfilteringfunction( $query ){
// if post_type matches :
// then I need to be able to add innerjoin into $query
}
提前感谢您的帮助。
答案 0 :(得分:0)
通过以下方式实现我的目标:
add_filter( 'parse_query', 'mypostsfilteringfunction' );
function mypostsfilteringfunction( $query ){
// if post_type matches :
add_filter( 'posts_join', 'myplugin_addjointorequest' );
add_filter( 'posts_where', 'myplugin_addwheretorequest' );
add_filter( 'posts_request', 'myplugin_sqlprint' ); // for printing result
}
function myplugin_addjointorequest ($join){
$join .= 'INNER JOIN ...';
return $join;
}
function myplugin_addwheretorequest ($where){
$where .= 'AND ...';
return $where;
}
function myplugin_sqlprint( $request ) {
echo $request;
return $request;
}