我有一个自定义分类法叫做coauthor
. 在edit.php
屏幕上,我正在尝试筛选并仅显示当前用户编写的帖子OR 由当前用户共同撰写的帖子。我可以拿到帖子authored 当前用户:
function get_authored_posts($query) {
global $user_ID;
$query->set(\'author\', $user_ID);
return $query;
}
add_filter(\'pre_get_posts\', \'get_authored_posts\');
我也可以得到帖子
coauthored 当前用户:
function get_coauthored_posts($query) {
global $user_ID;
$user = get_userdata($user_ID);
$query->set(\'taxonomy\', \'coauthor\');
$query->set(\'term\', $user->user_login);
return $query;
}
add_filter(\'pre_get_posts\', \'get_coauthored_posts\');
我相信结果会产生作者的帖子
AND 由当前用户共同编写。我正在寻找作者的帖子
OR 由当前用户共同编写。我希望第一次和第二次的结果都能显示出来。
注:为了澄清,合著者作为术语存储在coauthor
分类学术语是user\\u登录值。
==编辑==
我目前将作者存储为合著者。我觉得这是一个更好的解决方案的“变通方法”。如何/可以使用直接查询(忽略WP\\u查询对象)并从pre\\u get\\u posts筛选器返回该查询?
SO网友:ZweiBlumen
我不确定您是否可以轻松地向$query对象添加或查询。
在查询元信息时,这似乎是可能的,例如:
$args = array(
\'post_type\' => \'product\',
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'color\',
\'value\' => \'blue\',
\'compare\' => \'NOT LIKE\'
),
array(
\'key\' => \'price\',
\'value\' => array( 20, 100 ),
\'type\' => \'numeric\',
\'compare\' => \'BETWEEN\'
)
)
);
$query = new WP_Query( $args );
请注意“relation”参数。这是从本法典页的底部开始的:
http://codex.wordpress.org/Class_Reference/WP_Query另一种选择是将作者存储为合著者。