如何在WordPress的循环中循环?

bjg7j2ky  于 2022-12-03  发布在  WordPress
关注(0)|答案(1)|浏览(189)

如何在WordPress中运行循环中的循环?
到目前为止,我的尝试是这样的,但它似乎每次都使服务器崩溃。

<?php $loop = new WP_Query( array('post_type' => 'careers', 'posts_per_page' => '10', 'meta_key' => 'company', 'meta_value' =>  get_field('company') )); ?>
<?php $loop2 = new WP_Query( array('post_type' => 'jobs', 'posts_per_page' => '-1', 'meta_key' => 'company', 'meta_value' =>  get_field('company') ));?>
    
            <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
            <?php $i = 0; while ( $loop2->have_posts() ) : $loop->the_post(); $i++; ?>
                <?php echo $i ?>
            <?php endwhile; wp_reset_query(); update_field('jobscounter', $i); ?>       
            <?php endwhile; wp_reset_query(); ?>
mf98qq94

mf98qq941#

在PHP中,你可以用<?php打开一个代码段,然后用?>关闭它。记住这一点,你可以把所有的代码放在多行中,而不用反复打开和关闭<?php?>块。
示例:

<?php

$loop  = new WP_Query(array(
    'post_type' => 'careers',
    'posts_per_page' => '10',
    'meta_key' => 'company',
    'meta_value' => get_field('company')
));

$loop2 = new WP_Query(array(
    'post_type' => 'jobs',
    'posts_per_page' => '-1',
    'meta_key' => 'company',
    'meta_value' => get_field('company')
));

while ($loop->have_posts()):
    $loop->the_post();
    $i = 0;
    while ($loop2->have_posts()):
        $loop2->the_post();
        $i++;
        echo $i;
    endwhile;
    wp_reset_query();
    update_field('jobscounter', $i);
endwhile;

wp_reset_query();

?>

**注意:**您在echo $i后面缺少分号;
**注2:**第二个循环应使用$loop2->而不是$loop->

然后,你应该对每次迭代中处理的数据做一些事情。如果你不想只计算条目总数的话。
例如:

while ($loop2->have_posts()):
    $loop2->the_post();
    $i++;
    $post_title = $loop2->the_title(); // <--- Getting the title :)
    echo $post_title . "\n";
endwhile;

相关问题