我有一个名为“Blog”的自定义帖子类型设置,并添加了为帖子分配作者的功能。
我希望能够显示作者发表的帖子列表,但是这些帖子永远不会显示为自定义帖子类型,即使帖子是作者发表的,循环始终显示:“没有作者发表的帖子。”
这是我的作者的循环。php文件:
<?php $curauth = (isset($_GET[\'author_name\'])) ? get_user_by(\'slug\', $author_name) : get_userdata(intval($author)); ?>
<h1>Author: <?php echo $curauth->first_name; ?> <?php echo $curauth->last_name; ?></h1>
<!-- The Loop -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
$postThumb = get_field( \'news_image\' , $post->ID );
$postThumb = $postThumb[\'sizes\'][\'insightsPostThumb\'];
$cNewsBlogItem = array(
\'img\' => $postThumb,
\'title\' => $post->post_title,
\'date\' => date( \'d F, Y\', strtotime( $post->post_date ) ),
\'link\' => get_permalink( $post->ID )
);
?>
<?php
if(!$cNewsBlogItem[\'img\'] || $cNewsBlogItem[\'img\'] == ""){
// if no img use fallback
$cNewsBlogItem[\'img\'] = get_bloginfo(\'template_directory\').\'/images/news-fallback.jpg\';
}
?>
<a class="cNewsBlogItem <?php echo $cNewsBlogItem[\'class\']; ?>" href="
<?php echo $cNewsBlogItem[\'link\']; ?>" title="<?php echo $cNewsBlogItem[\'title\']; ?>">
<img src="<?php echo $cNewsBlogItem[\'img\']; ?>" alt="<?php echo $cNewsBlogItem[\'title\']; ?>" />
最合适的回答,由SO网友:Neelam Khan 整理而成
我通过使用pre\\u get\\u posts函数并将自定义post类型添加到主查询中,成功地解决了这个问题。
我在我的函数中添加了以下内容。php文件,现在我可以在自定义帖子类型中获得作者的结果:
/* pre_get_posts function added to include post type blog in author loop */
function add_cpt_author( $query ) {
if ( !is_admin() && $query->is_author() && $query->is_main_query() ) {
$query->set( \'post_type\', array(\'post\', \'blog\' ) );
}
}
add_action( \'pre_get_posts\', \'add_cpt_author\' );