@laravelcode

Как оформить шаблон вывода в function.php?

Здравствуйте, имеется код, перебираю посты в functions.php:
// Вывод категорий техники
function techcategory_func()
{
	$args = [
		'order' => 'ASC',
        'posts_per_page' => 9,
        'post_type' => 'tech'
    ];

    $my_query = new WP_Query($args);
	
    if ( $my_query->have_posts() ) :
	        while ( $my_query->have_posts() ) : $my_query->the_post();
				get_template_part( 'third-party/tech', get_post_format() );
			endwhile;
		else :
			return 'Техника не найдена';
   endif;
}
add_shortcode('techcategory', 'techcategory_func');


Не получается оформить с помощью html css шаблон вывода,

как только я подключаю get_template_part( 'third-party/tech', get_post_format() );
и в файле добавляю 123 для проверки, сразу выдается ошибка в админке где вставлен шорткод [techcategory]
cannot modify header information - headers already sent by

Что делать? без оформления все работает, изначальный код вот такой был:
// Вывод категорий техники
function techcategory_func()
{
	$args = [
		'order' => 'ASC',
        'posts_per_page' => 9,
        'post_type' => 'tech'
    ];

    $my_query = new WP_Query($args);
	
    if ( $my_query->have_posts() ) : ?>
		<div class="post-tech">
	       <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
			  <div class="tech-block">
				<a href="<?php the_permalink() ?>"><?php get_the_title();
				if ( has_post_thumbnail() )
				{
				   $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
				   the_post_thumbnail('thumbnail');
				}
				echo '<h6>'.get_the_title().'</h6>';
			  ?></a></div><?php
			endwhile;
		else :
			return 'Техника не найдена'; ?>
		</div>
   <?php endif;
}
add_shortcode('techcategory', 'techcategory_func');

И это вызывает тоже ошибку, как я понял нельзя вообще разрывать и начинать теги <?php ?>
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
Kozack
@Kozack Куратор тега WordPress
Потому что функция шорткода должна возвращать а не выводить код.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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