我在我的作者上添加了一个元字段(company
). 如何仅显示具有特定公司价值的作者撰写的帖子(company1
或company2
例如)?
我想在pre_get_posts
滤器
我在我的作者上添加了一个元字段(company
). 如何仅显示具有特定公司价值的作者撰写的帖子(company1
或company2
例如)?
我想在pre_get_posts
滤器
这个WP_Query Object 不支持通过检索帖子author_meta
因此pre_get_posts
hook. 下一个最好的办法是快速WP_User_Query 并通过特定的author_meta
然后将我们的查询限制为仅从这些作者那里获取帖子。下面是它的样子:
/**
* Modify Queries
*
* @param WP_Query Object $query
*/
function theme_pgp( $query ) {
// If we\'re on admin side, return
if( is_admin() ) {
return;
}
// Only apply to main queries
if( $query->is_main_query() ) {
// Get all users with a Company field
$users = new WP_User_Query( array(
\'meta_key\' => \'company\',
\'meta_value\' => \'company1\',
\'fields\' => \'ID\',
) );
$authors = $users->get_results();
if( ! empty( $authors ) ) {
$query->set( \'author__in\', $authors );
}
}
}
add_action( \'pre_get_posts\', \'theme_pgp\' );
我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the