【问题标题】:Opening and closing div based on loop基于循环打开和关闭div
【发布时间】:2018-09-26 19:39:50
【问题描述】:

我知道这可能不是 WP 专属相关的问题,但我认为这里的问题是循环,我遗漏了一些东西。 我正在尝试创建一个自定义“存档”页面,在该页面中,我想使用循环设置我的帖子的样式,每组 4 个。 目前我有 10 个此类帖子,我认为不会更多,但我不能强迫任何事情,因为它们可以轻松增加或减少。

<div id="bun" class="bun sezmenu">
<?php $catquery = new WP_Query( 'category_name=bun&&posts_per_page=-1&&nopaging=true'); $et_npb = 1;$id = 37;$category = get_category($id);$count = $category->category_count;?>
<?php if ($catquery->have_posts() ) : while($catquery->have_posts()) : $catquery->the_post();?>
    <?php if ($et_npb === 1 || $et_npb % 5 === 0 ){ echo '<div class="row">' ;};?>
    <div class="col">
        <div class="list__item list__item_ajax">
            <a href="" title="<?php the_title();?>" class="umodal__open" umodal-src="<?php the_permalink();?>">
                <img class="lazyload rounded-circle"
                     src="<?php echo get_stylesheet_directory_uri(); ?>/img/bn/bun.png"
                     data-src="<?php echo get_stylesheet_directory_uri(); ?>/img/bun.png"
                     height="128" width="128"
                     alt="<?php the_title();?>" />
            </a>
        </div><!-- list__item list__item_ajax -->
    </div>
<?php ++$et_npb; if ($et_npb % 5 == 0 || $et_npb == $count){echo '</div>';};
endwhile;endif;?>

正如您在下图中看到的那样,有问题,我不知道是什么问题。 我是否正确使用该功能来计算该类别中的所有帖子?

我也尝试了这个工具来尝试了解 div 是打开还是关闭。

<divid="bun" class="bun sezmenu">
  |<divclass="row">
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |</div>
  |<divclass="row">
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |</div>
  |<divclass="row">
  |       |<divclass="col">
  |       |       |<divclass="list__item list__item_ajax">
  |       |       |</div>
  |       |</div>
  |</div>
  |<divid="piadina" class="piadina sezmenu">
  |</div>
  |<divid="crepe" class="crepe sezmenu">
  |</div>
  |<divid="dolci" class="dolci sezmenu">
  |</div>
  |<divumodal-id="umodal-1" class="umodal">
  |       |<divclass="umodal__inner">
  |       |       |<divclass="umodal__content">
  |       |       |</div>
  |       |</div>
  |</div>

它说我在某处缺少 1 个标签,但这很明显,因为我的循环没有正确关闭所有 div。

它应该是这样工作的,但我想不通,它不能保持“硬编码”:

<div id="bun" class="bun sezmenu">
<?php $catquery = new WP_Query( 'category_name=bun&&posts_per_page=-1&&nopaging=true'); $et_npb = 1;$id = 37;$category = get_category($id);$count = $category->category_count;?>
<?php if ($catquery->have_posts() ) : while($catquery->have_posts()) : $catquery->the_post();?>
<?php if ($et_npb === 1 || $et_npb === 5 || $et_npb ===9){;?><div class="row"><?php };?>
    <div class="col">
        <div class="list__item list__item_ajax">
            <a href="" title="<?php the_title();?>" class="umodal__open" umodal-src="<?php the_permalink();?>">
                <img class="lazyload rounded-circle"
                     src="<?php echo get_stylesheet_directory_uri(); ?>/img/bn/bun.png"
                     data-src="<?php echo get_stylesheet_directory_uri(); ?>/img/bun.png"
                     height="128" width="128"
                     alt="<?php the_title();?>" />
            </a>
        </div><!-- list__item list__item_ajax -->
    </div>
    <?php ++$et_npb; if ($et_npb === 5 || $et_npb === 9 ||  $et_npb === $count+1){echo '</div>';};
        endwhile;endif;?>
</div><!-- .sezmenu -->

【问题讨论】:

    标签: php html wordpress loops count


    【解决方案1】:

    有时最简单的解决方案是遥不可及,但这次,我找到了我的解决方案! 你对此有什么看法?可以改进吗?

    <div id="bun" class="bun sezmenu">
    <?php $catquery = new WP_Query( 'category_name=bun&&posts_per_page=-1&&nopaging=true'); $et_npb = 0;$id = 37;$category = get_category($id);$count = $category->category_count;?>
    <?php if ($catquery->have_posts() ) : while($catquery->have_posts()) : $catquery->the_post();?>
    <?php if (($et_npb === 0) || ($et_npb %4 == 0)){;?><div class="row"><?php };?>
        <div class="col">
            <div class="list__item list__item_ajax">
                <a href="" title="<?php the_title();?>" class="umodal__open" umodal-src="<?php the_permalink();?>">
                    <img class="lazyload rounded-circle"
                         src="<?php echo get_stylesheet_directory_uri(); ?>/img/bn/bun.png"
                         data-src="<?php echo get_stylesheet_directory_uri(); ?>/img/bun.png"
                         height="128" width="128"
                         alt="<?php the_title();?>" />
                </a>
            </div><!-- list__item list__item_ajax -->
        </div>
        <?php ++$et_npb; if ( ($et_npb %4 == 0) ||  ($et_npb === $count)){echo '</div>';};
            endwhile;endif;?>
    </div><!-- .sezmenu -->
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多