我正在尝试创建一个作者。php页面,由出现在该页面上的作者调用自定义帖子类型。我的问题是,当使用下面的代码(过滤帖子类型“video”)时,代码会输出所有自定义帖子类型,而不仅仅是“video”。注意事项是在删除数组的author键和变量时\'author\' => $author
这样做的效果是允许代码输出所需的自定义帖子类型“视频”,但来自每个作者。有没有办法解决这个问题?
Code used:
<?php
$args = array(
\'post_type\' => array( \'audio\' ),
\'posts_per_page\' => 10,
\'author\' => $author
);
$author_videos = new WP_Query( $args );
if ( $author_videos->have_posts() ) : while ( $author_videos->have_posts() ) : $author_videos->the_post(); ?>
<p><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile;
wp_reset_postdata();
endif; ?>
SO网友:Nicolai Grossherr
你读过法典页了吗Author Templates? 在那里它指出:
当浏览者单击指向某个帖子作者的链接时,默认情况下,他或她会被带到一个页面,该页面按时间顺序列出该特定作者的帖子
这取决于是否有正确的链接设置,可以使用the_author_posts_link()
或wp_list_authors()
. 不需要自定义查询,您可以通过挂接到pre_get_posts
.
Code:
function wpse124293_cpts_for_author_archives( $query ) {
if ( ! $query->is_main_query() || is_admin() )
return;
if ( is_author() ) {
//only show cpt audio
$query->set( \'post_type\', array( \'audio\' ) );
//to show builtin post and cpt audio use: array( \'post\', \'audio\' )
}
}
add_action( \'pre_get_posts\', \'wpse124293_cpts_for_author_archives\' );