在wordpress环境中退出php中的循环

在wordpress环境中退出php中的循环,php,jquery,wordpress,loops,Php,Jquery,Wordpress,Loops,我正在开发一个工具,在wordpress的页面上显示一些成员。我硬编码了大部分部分,但我利用了数据库,在运行循环的地方插入了一个部分。现在我想使用循环和一个名为flipster()的jQuery插件来很好地显示一个转盘,该转盘将显示它们中的每一个。到目前为止还不错,唯一的问题是我无法结束循环。我的代码如下: <div id="carousel"> <ul class="flip-items"> <li> <

我正在开发一个工具,在wordpress的页面上显示一些成员。我硬编码了大部分部分,但我利用了数据库,在运行循环的地方插入了一个部分。现在我想使用循环和一个名为flipster()的jQuery插件来很好地显示一个转盘,该转盘将显示它们中的每一个。到目前为止还不错,唯一的问题是我无法结束循环。我的代码如下:

<div id="carousel">
    <ul class="flip-items">
        <li>
            <?php $temp_query = $wp_query; ?>
            <?php query_posts("cat=2"); ?>
            <?php while (have_posts()) : the_post(); ?>
            <?php the_post_thumbnail(); ?>
            <div class="col-md-6">
                <?php $socialaddress = get_post_meta( $post->ID, 'name', true );
                if ( ! empty( $socialaddress ) ) {
                    echo '<h4>' . get_post_meta($post->ID, 'name', true) . '</h4>' ;
                } ?>
                <?php $socialaddress = get_post_meta( $post->ID, 'Company', true );
                if ( ! empty( $socialaddress ) ) {
                    echo '<h6>' . get_post_meta($post->ID, 'Company', true) . '</h6>' ;
                } ?>
            </div>
            <div class="col-md-6">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing</p>
            </div>
        </li>
        <?php 
            $counter++;
            if ($counter % 1 == 0) {
                echo '<li>';
            }
            if ($counter == false) {
                echo '</li>';
            }
            endwhile; 
        ?>
        </ul>
    </div>
</div>

  • Lorem ipsum dolor sit amet,Concertetur Adipising

正如您所注意到的,我的循环将结束,但最后一个元素将打开另一个li项,因此我将打乱布局。有没有办法防止这种行为

更新:

我放置插件的网站如下:()。
正如您可以注意到的,在最后一个li项之后,它打开了另一个li,因为我放置了一定数量的成员,所以它不包含任何内容。

您可以使用
break
退出循环。或者您可以使用
continue
跳过循环的当前迭代

<?php 
     $temp_query = $wp_query;
     while (have_posts()) : 
      ....         
         if ( /* some condition here */ ) { 
             break; //this will exit your loop, you decide where to put it
         }
      ....
     endwhile;
?>

您可以使用
break
退出循环。或者您可以使用
continue
跳过循环的当前迭代

<?php 
     $temp_query = $wp_query;
     while (have_posts()) : 
      ....         
         if ( /* some condition here */ ) { 
             break; //this will exit your loop, you decide where to put it
         }
      ....
     endwhile;
?>

您应该尝试缩进代码,以便更清楚地看到发生了什么

你为什么要这样做:

$counter++;
if ($counter % 1 == 0) {
    echo '<li>';
}
if ($counter == false) {
    echo '</li>';
}
$counter++;
如果($counter%1==0){
回音“
  • ”; } 如果($counter==false){ 回音“
  • ”; }
    您的$counter未初始化,您的$counter%1将始终生成$counter。 我不明白你想在这里实现什么

    无论如何,为什么不把“
  • ”项放在下面这样的位置:

    echo '<li><h4>' . get_post_meta($post->ID, 'name', true) . '</h4></li>' ;
    
    echo'
  • '。获取帖子元($post->ID,'name',true)。'';

  • 那你就不需要那两个奇怪的IF了。甚至不能中断while循环,因为当没有更多的帖子时,while循环将停止。

    您应该尝试缩进代码,以便更清楚地看到发生了什么

    你为什么要这样做:

    $counter++;
    if ($counter % 1 == 0) {
        echo '<li>';
    }
    if ($counter == false) {
        echo '</li>';
    }
    
    $counter++;
    如果($counter%1==0){
    回音“
  • ”; } 如果($counter==false){ 回音“
  • ”; }
    您的$counter未初始化,您的$counter%1将始终生成$counter。 我不明白你想在这里实现什么

    无论如何,为什么不把“
  • ”项放在下面这样的位置:

    echo '<li><h4>' . get_post_meta($post->ID, 'name', true) . '</h4></li>' ;
    
    echo'
  • '。获取帖子元($post->ID,'name',true)。'';

  • 那你就不需要那两个奇怪的IF了。甚至不能中断while循环,因为当没有更多帖子时,它将停止。

    break退出循环。
    中断退出一个循环。实际上,我在wordpress中所有循环都使用了第一部分:问题是我试图找出第二部分退出循环我在wordpress中所有循环都使用了第一部分:问题是我试图找出第二部分退出循环