我想在author arhive页面中包含自定义帖子类型。我尝试了本文中讨论的方法:
Including post_type = 'wiki' in author archives
add_action( \'pre_get_posts\', \'custom_post_author_archive\' );
function custom_post_author_archive( &$query )
{
if ( $query->is_author )
{
$query->set( \'post_type\', \'custom_name\' );
remove_action( \'pre_get_posts\', \'custom_post_author_archive\' ); // run once!
}
}
但通过此方法,只查询custom\\u name post。我想查询custom\\u name帖子和普通帖子。
我需要做哪些更改?
最合适的回答,由SO网友:helgatheviking 整理而成
正如Kaiser所提到的post_type
参数可以接受post类型的数组。更新要使用的函数is_main_query()
要将过滤器仅限于“main”查询,代码如下所示:
add_action( \'pre_get_posts\', \'custom_post_author_archive\' );
function custom_post_author_archive( $query )
{
if ( is_main_query() && is_author() )
{
set_query_var( \'post_type\', array(\'post\',\'custom_post\') );
}
}