我有此WP查询...
$downloads = new WP_Query(array(
'post_type' => 'download',
'paged' => $paged,
'posts_per_page' => 20
));
但是,如果我的$user_admin
条件为TRUE ...
if ($user_admin)
$downloads = new WP_Query(array(
'meta_query' => array(
array(
'key' => 'download_access_rules',
'value' => 'genpo',
'compare' => 'NOT IN'
)
)
)
);
所以我运行它似乎打破了我的循环,但不会导致致命错误...
$downloads = new WP_Query(array(
'post_type' => 'download',
'paged' => $paged,
'posts_per_page' => 20
));
if ($user_admin) {
$downloads = new WP_Query(array(
'meta_query' => array(
array(
'key' => 'download_access_rules',
'value' => 'genpo',
'compare' => 'NOT IN'
)
)
));
}
好的,我的问题本质上是这样...如果$user_admin
条件等于true,我该如何融合两个$downloads
变量。
,但最快,最正确的方法是实际执行此操作,因为我的方法不起作用。
从查看您的代码,看起来您可以将数组合并在一起,然后创建新的WP_QUERY对象。从您的描述中,我了解您是说您希望查询将查询混合成一个,而不是将查询的结果混合成一个。
$args = array(
'post_type' => 'download',
'paged' => $paged,
'posts_per_page' => 20
);
if ($user_admin) {
$args = array_merge($args, array(
'meta_query' => array(
array(
'key' => 'download_access_rules',
'value' => 'genpo',
'compare' => 'NOT IN'
)
)
));
}
$downloads = new WP_Query($args);
我也想知道您指出您当前的代码似乎打破了循环。确切的第一个代码示例正在发生什么。您是空白页还是根本没有返回任何文章?
检查用户是否是管理员时要注意的另一件事,您还可以使用is_admin()而不是$ user_admin。
函数参考/admin
尝试:
$query = array(
'post_type' => 'download',
'paged' => $paged,
'posts_per_page' => 20
);
if ($user_admin) {
$query2 = array(
'meta_query' => array(
array(
'key' => 'download_access_rules',
'value' => 'genpo',
'compare' => 'NOT IN'
)
)
);
$query = array_merge($query, $query2);
}
$downloads = new WP_Query($query);
希望这会有所帮助!