Хотя я не уверен, что входит в ваш список, первая проблема, с которой вы столкнулись, заключается в том, что вы не можете отобразить вывод своей строки, которую хотите сохранить в качестве переходного процесса. Вы должны объединить $q
в длинную строку со всеми включенными выходными данными HTML.
Также, возможно, вы захотите использовать буферизацию вывода для получения содержимого вашего включенного шаблона файла.
if (!empty($packs = get_post_meta(get_the_ID(), 'pack', true))):
if ( false === ( $q = get_transient( 'packs_list' ) ) ) {
$params = array(
'post_type' => 'product',
'posts_per_page' => '7',
'meta_query' => array(
array(
'key' => 'package_pack',
'value' => $packs,
'compare' => 'IN'
)
)
);
$wp_query = new WP_Query($params);
$q = '<div class="products list_">';
while ($wp_query->have_posts()) : $wp_query->the_post();
ob_start();
include(rh_locate_template('inc/parts/main.php'));
$q .= ob_get_clean();
endwhile;
$q .= '</div>';
set_transient( 'packs_list', $q, 1 * HOUR_IN_SECONDS );
wp_reset_postdata();
}
endif;
Если вам все еще нужно вывести $q
на экран в этом процессе, вы можете просто
echo $q;
Где вам нужно.