我得到了以下php。我想要的是此循环以排除特定的帖子ID
以下字段将生成我希望排除的ID
<?php the_field('excludeid'); ?>
(此字段基本上检查页面上是否标记了一个复选框,如果选中,它将输出页面ID)
因此,如果它检查了页面ID 701,则选中了复选框,它将输出701(否则将不输出任何内容)
所以在循环中,我想检查循环的页面是否与该输出匹配,如果匹配,则需要跳过该页面
<?php while ( $parent->have_posts() ) : $parent->the_post(); ?>
Do something, except when page id is equal to <?php the_field('excludeid'); ?>
<?php endwhile; ?>
编辑,这是我现在拥有的:
<?php while ( $parent->have_posts() ) : $parent->the_post(); ?>
<?php if( $post->ID == 686) continue; ?>
<?php endwhile; ?>
那行得通,但是当我将686更改为“ the_field('excludeid')”(输出686)时,它不起作用。 我是php中的新手,所以很多人在XD上都在做一些愚蠢的事情
答案 0 :(得分:0)
while
循环是一种有条件的,但是在循环中,您可以在其参数内设置任何类型的逻辑。在这种情况下,您需要迭代$parent->have_post()
while($parent->has_post() && (!in_array($parent->the_post()->id, the_field('excludeid')) {
// your logic
}
我不知道您的业务代码如何,但是,您必须知道while
是有条件的,但是会循环