Функция вывода шаблона темы через shortcode в Wordpress

Weblady
На сайте с 26.07.2011
Offline
141
312

Хотелось бы с помощью шорткода добавить на страницу вывод шаблона content-latestpost.php темы из папки /тема/template-parts.

Функция регистрации шорткода добавляется в functions.php

function text_short() {

return 'Любой нужный текст. который нужно выводить внутри текста Вашей записи.';
}
add_shortcode('ts', 'text_short');

Получаем шорткод [ts].

Подскажите, пожалуйста, код функции шорткода, которая вызовет шаблон template-parts/content-latestpost.php

IL
На сайте с 20.04.2007
Offline
435
#1
webledi:
код функции шорткода, которая вызовет шаблон template-parts/content-latestpost.php

смотрите в сторону https://wp-kama.ru/function/get_template_part

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Weblady
На сайте с 26.07.2011
Offline
141
#2

ivan-lev, спасибо!

Еще столкнулась с одной проблемой. Такой код отвечает за вывод виджета последних записей:

<?php query_posts('cat=1'); // вместо "3" указываем идентификатор вашей рубрики.
while ( have_posts() ) :
the_post();

get_template_part( 'template-parts/content-statyi-main', get_post_type() );
endwhile; // End of the loop.

wp_pagenavi();
?>

С помощью этого шорткода виджет добавлен на главную страницу:

[su_posts template="statyi-for-main.php"]

Отображается блок с последними записями корректно, но почему-то внизу страницы этот блок с записаями дублируется еще раз. Подскажите, пожалуйста, как попросить код не дублировать этот блок повторно.

S
На сайте с 30.09.2016
Offline
469
#3
webledi:
как попросить код не дублировать этот блок повторно.

Он уже отвечал на этот вопрос.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Weblady
На сайте с 26.07.2011
Offline
141
#4
Sitealert:
Он уже отвечал на этот вопрос.

Если поменять местами

get_template_part( 'template-parts/content-statyi-main', get_post_type() );

и

endwhile;
, в нужном блоке показывается только одна запись (вместо нужных трех), а внизу блок также дублируется с тремя записями😕

---------- Добавлено 25.01.2020 в 11:13 ----------

Удалось справиться с помощью wp_query

<?php $query = new WP_Query(array(

'posts_per_page' => 3,
'cat' => 1));
if($query->have_posts()):while($query->have_posts()):$query->the_post();

get_template_part( 'template-parts/content-statyi-main', get_post_type() );
//post
endwhile;
else:
//net postov
endif;
?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий