php while语句,但帖子ID

时间:2018-07-30 14:32:00

标签: php

我得到了以下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上都在做一些愚蠢的事情

1 个答案:

答案 0 :(得分:0)

while循环是一种有条件的,但是在循环中,您可以在其参数内设置任何类型的逻辑。在这种情况下,您需要迭代$parent->have_post()

    while($parent->has_post() && (!in_array($parent->the_post()->id, the_field('excludeid')) {
      // your logic
    }

我不知道您的业务代码如何,但是,您必须知道while是有条件的,但是会循环