Результат функции выводится в другом месте
-
Здравствуйте!
У меня был код внутри шаблона для одной страницы, который выводил все посты с типом «Портфолио» в виде слайдера.
Потом шаблон сделали общим для нескольких страниц и в итоге код вывода слайдера перенесли в контент страницы и он там не работает. Мне сказали создать функцию и шорткод.Вот код, который был ранее в шаблоне:
<?php global $post; $args = array( 'post_type' => 'portfolio_posts'); $myposts = get_posts( $args ); foreach( $myposts as $post ){ setup_postdata($post); ?> <li> <?php the_post_thumbnail('big'); ?> <div class="uk-position-botom uk-panel"> <?php the_title(); ?> </div> </li> <?php } wp_reset_postdata(); ?>
Я переделал его в functions.php вот так:
function portfolioslider() { global $post; $args = array( 'post_type' => 'portfolio_posts'); $myposts = get_posts( $args ); foreach( $myposts as $post ){ setup_postdata($post); $postimg = the_post_thumbnail('big'); $posttitle = the_title(); $out .= '<li>'.$postimg.'<div class="uk-position-botom uk-panel">'.$posttitle.' </div></li>'; } return $out; } add_shortcode( 'portfolioslider', 'portfolioslider' );
Картинки и названия выводятся возле тега body, где в шаблоне есть код:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php the_content(); ?> <?php endwhile; else: ?> Не найдено записей по вашему запросу <?php endif; ?>
А если в функции изменю название глобальной переменной с post на portfolio например, то картинки выводиться не будут, а будет лишь выводится несколько раз название текущей страницы.
Подскажите пожалуйста как это исправить все? Может я функцию неправильно написал?
Заранее спасибо, уже 4ый час вожусь
- Тема «Результат функции выводится в другом месте» закрыта для новых ответов.