在while循环中查找位置

时间:2016-11-10 15:35:32

标签: php wordpress

我在WordPress中创建了一个while循环,通过它输出一些自定义字段和发布数据。我想要做的是查看循环内部并检查以查找字段是否匹配以突出显示该字段并从迭代中输出其位置。

我的用户在他们的个人资料中有一个名为'schoolname'的字段,我想引用它。

$user_info = get_userdata(1);

echo $user_info->schoolname; 

$i= 1;

$loop = new WP_Query( 
array( 'post_type' => 'schools', 
       'posts_per_page' => -1, 
       'orderby' => 'signups',
       'order'   => 'ASC', ) 
); 

while ( $loop->have_posts() ) : $loop->the_post(); 

echo '<tr>
      <td>' . $i++ . '</td>
      <td>' . get_the_title() . '</td>
      <td>' . $signups = get_field( "signups") . ' Signups</td>
      </tr>';

 endwhile; wp_reset_query();

1 个答案:

答案 0 :(得分:1)

要获得循环的状态,您还可以使用foreach

<?php global $post; // required

$posts = get_posts();
foreach($posts as $state => $post) : setup_postdata($post);
...
endforeach;
?>

您可以替换while部分with the foreach part. To know the iteration number just use $ state`。

更新

<?php
$posts = get_posts(array( 'post_type' => 'schools', 
       'posts_per_page' => -1,
       'orderby' => 'signups',
       'order'   => 'ASC',
));
?>

<?php if ($posts): ?>
    <?php foreach ($posts as $key => $post): ?>
        <?php setup_postdata($post); ?>
        <tr>
            <td><?= $key; ?></td>
            <td><?= get_the_title(); ?></td>
            <td><?= get_field( "signups"); ?> Signups</td>
        </tr>
    <?php endforeach; ?>
    <?php wp_reset_postdata(); ?>
<?php endif; ?>