Авторские сообщения не отображаются для пользовательских типов сообщений

У меня есть настраиваемая настройка типа сообщений, называемая «Блог», и я добавил возможность назначать авторов сообщениям.

Я хочу, чтобы иметь возможность отображать список сообщений, сделанных автором, однако сообщения никогда не появляются для пользовательского типа сообщения, даже если сообщения были сделаны автором, цикл всегда отображает: «Нет сообщений от этого автора».

Вот цикл в файле author.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']; ?>" /> 

Мне удалось решить эту проблему, используя функцию pre_get_posts и добавив пользовательский тип сообщения в основной запрос.

Я добавил ниже в свой файл functions.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' );