自定义帖子类型未显示作者帖子

时间:2017-06-19 作者:Neelam Khan

我有一个名为“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\']; ?>" />

1 个回复
最合适的回答,由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\' ); 

结束