Почему вместо работ из портфолио выводятся записи из блога?

Помогите пожалуйста, уже голову сломала, не могу понять, почему вместо работ из портфолио выводятся посты из блога.

В function.php зарегистрировала новый тип записей для портфолио:

add_action( 'init', 'register_post_types' );
function register_post_types(){
	register_post_type( 'portfolio', array(
		'label'  => null,
		'labels' => array(
			'name'               => 'Портфолио', 
			'singular_name'      => 'Портфолио', 
			'add_new'            => 'Добавить работу', 
			'add_new_item'       => 'Добавление работы', 
			'edit_item'          => 'Редактирование работы', 
			'new_item'           => 'Новая работа', 
			'view_item'          => 'Смотреть работу', 
			'search_items'       => 'Искать работу в портфолио', 
			'not_found'          => 'Не найдено',
			'not_found_in_trash' => 'Не найдено в корзине',
			'parent_item_colon'  => '', 
		),
		'description'         => 'Ознакомьтесь с нашими работами',
		'public'              => true,
		'publicly_queryable'  => true, 
		'exclude_from_search' => true, 
		'show_ui'             => true, 
		'show_in_nav_menus'   => true, 
		'show_in_menu'        => true, 
		'show_in_admin_bar'   => true, 
		'show_in_rest'        => true, 
		'rest_base'           => null, 
		'menu_position'       => 4,
		'menu_icon'           => null,
		'hierarchical'        => false,
		'supports'            => [ 'title', 'thumbnail' ], 
		'taxonomies'          => [],
		'has_archive'         => false,
		'rewrite'             => true,
		'query_var'           => true,
	) );
}

В portfolio.php вывожу работы из портфолио, а мне выводятся записи из блога. Почему так? 
<?php 
   $args = get_posts( array(
        'numberposts' => 2, 
	'post_type'   => 'portfolio',
	'suppress_filters' => true, 
    ) );

    $posts = get_posts( $args );

    foreach( $posts as $post ){setup_postdata($post);
?>

    <div class="columns portfolio-item">
	 <div class="item-wrap">
	      <a href="<?php the_permalink() ?>">
	           <?php the_post_thumbnail(); ?> 
			<div class="overlay"></div>
			     <div class="link-icon"><i class="fa fa-link"></i></div></a>
	      <div class="portfolio-item-meta">
	            <h5><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h5>
		    <p><?php the_excerpt(); ?></p>
	      </div>
         </div>
     </div>   
<?php
     }
     wp_reset_postdata(); 
?>


Благодарю!
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 2
bingumd
@bingumd
...
а зачем два раза вызывать get_posts?

$args = get_posts( array(  // первый раз
'numberposts' => 2,
'post_type' => 'portfolio',
'suppress_filters' => true,
) );

$posts = get_posts( $args ); // второй раз


получается что второй раз он вызывается с дефолтными значениями.
Ответ написан
Комментировать
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Для чего вы вообще создали portfolio.php и изобретаете там велосипед. Используйте archive.php или archive-portfolio.php, там уже установлены переменные глобального цикла
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы