PHP 在 while 循环中设置两个内容不同的输出缓冲区
PHP setting up two output buffers with different contents in while loop
我有一个 Wordpress 网站,我正在尝试在 AJAX 调用中遍历我的 post,我想存储第一个 [=21] 的 HTML =] 在一个单独的变量循环中,而不是 post 的其余部分。我将如何设置输出缓冲区
if (have_posts()) :
$i = 0;while(have_posts()): the_post();
if ($i == 0):
ob_start();
get_template_part('templates/latest-post', get_post_format());
$recent_post = ob_get_contents();
ob_end_clean();
else:
ob_start();
get_template_part('templates/remaining-posts', get_post_format());
$remaining_posts = ob_get_contents();
ob_end_clean();
endif;
$i++; endwhile;
endif;
这不起作用,因为每次迭代都会调用 ob_start
和 ob_clean
,所以我最终在 $remaining_posts
变量中只有 1 个 post,但我不确定如何正确设置它。
您可以使用 .=
:
连接该内容
// Initialize the remaining posts variable
$remaining_posts = '';
if (have_posts()) :
$i = 0;while(have_posts()): the_post();
if ($i == 0):
ob_start();
get_template_part('templates/latest-post', get_post_format());
$recent_post = ob_get_contents();
ob_end_clean();
else:
ob_start();
get_template_part('templates/remaining-posts', get_post_format());
// Concatenate
$remaining_posts .= ob_get_contents();
ob_end_clean();
endif;
$i++; endwhile;
endif;
我有一个 Wordpress 网站,我正在尝试在 AJAX 调用中遍历我的 post,我想存储第一个 [=21] 的 HTML =] 在一个单独的变量循环中,而不是 post 的其余部分。我将如何设置输出缓冲区
if (have_posts()) :
$i = 0;while(have_posts()): the_post();
if ($i == 0):
ob_start();
get_template_part('templates/latest-post', get_post_format());
$recent_post = ob_get_contents();
ob_end_clean();
else:
ob_start();
get_template_part('templates/remaining-posts', get_post_format());
$remaining_posts = ob_get_contents();
ob_end_clean();
endif;
$i++; endwhile;
endif;
这不起作用,因为每次迭代都会调用 ob_start
和 ob_clean
,所以我最终在 $remaining_posts
变量中只有 1 个 post,但我不确定如何正确设置它。
您可以使用 .=
:
// Initialize the remaining posts variable
$remaining_posts = '';
if (have_posts()) :
$i = 0;while(have_posts()): the_post();
if ($i == 0):
ob_start();
get_template_part('templates/latest-post', get_post_format());
$recent_post = ob_get_contents();
ob_end_clean();
else:
ob_start();
get_template_part('templates/remaining-posts', get_post_format());
// Concatenate
$remaining_posts .= ob_get_contents();
ob_end_clean();
endif;
$i++; endwhile;
endif;