dikey58
@dikey58
Самоучка - web-разработчик

Как получить страницы из wp_query при создании Шорткода?

Добрый день.
Пытаюсь сделать вывод страниц по используемому шаблону на этих страницах по шорткоду. Но что-то никак не соображу как правильно вывести цикл?

вот то что у меня сейчас:
function shortcode_cards( $atts ) {

	$atts = shortcode_atts( [
		'post_template' => '',
	], $atts );

	while ( have_posts() ) :
				the_post();
				$args = [
					'post_type' => 'page',
					'posts_per_page' => 4,
				    // 'post__not_in' => [ get_the_ID() ], // Раскомментировать, если надо исключить текущую страницу
					'meta_query' => [
						[
							'key' => '_wp_page_template',
							'value' => $atts['post_template'] . '.php'
						]
					]
				];
				$my_pages = new WP_Query( $args ); 

				$out = '';

				if ( $my_pages->have_posts() ) :

					while ( $my_pages->have_posts() ) : $my_pages->the_post(); 
						$out .= '
						<a href="<?php the_permalink(); ?>">
							<div class="card">

								'. the_post_thumbnail(
									'thumbnail',
									array(
										'class' => 'card-img-top rounded-circle img-fluid',
									)
								) .'

								<div class="card-body">
									'. the_title( '<div class="card-title h5 text-center">', '</div>' ) .'
								</div>
							</div>
						</a>
						';

					endwhile;
				endif;

				wp_reset_postdata();

		endwhile; // End of the loop.
	return $out;
}
add_shortcode( 'cards', 'shortcode_cards' );

Сам шорткод срабатывает, но почему-то не срабатывает условие проверки наличия постов.
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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