我可以忘记页面模板中的POST循环吗?

时间:2020-05-25 作者:André Kelling

一个简单的page.php 模板通常如下所示:

<?php
/**
 * The template for displaying all pages
 *
 * This is the template that displays all pages by default.
 * Please note that this is the WordPress construct of pages
 * and that other \'pages\' on your WordPress site will use a
 * different template.
 *
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0
 */
get_header(); ?>

  <div id="primary" class="site-content">
    <div id="content" role="main">

      <?php while ( have_posts() ) : the_post(); ?>
        <?php get_template_part( \'content\', \'page\' ); ?>
        <?php comments_template( ’, true ); ?>
      <?php endwhile; // end of the loop. ?>

    </div><!-- #content -->
  </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
因此,内部有一个while循环。

但我没有在任何情况下渲染出几个“页面”。是什么假设!

E、 g.对于存档来说,这个循环完全有意义。

现在来回答我的问题,我想按照以下示例构造模板:

<?php get_header(); ?>

<?php while ( have_posts() ) : the_post(); ?>
  <?php a_special_content_output_before_the_main_container(get_title()); ?>

  <div id="primary" class="site-content">
    <div id="content" role="main">
        <?php get_template_part( \'content\', \'page\' ); ?>
        <?php comments_template( ’, true ); ?>
    </div><!-- #content -->
  </div><!-- #primary -->
<?php endwhile; // end of the loop. ?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>
这意味着如果这个while循环中有两个项目,我将得到无效的标记,因为duplicated id selectors.

是否存在一个页面可以有多个条目的情况。意味着have_posts() 更大的是1吗?

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

在单个页面和帖子模板上,主循环只会包含一篇帖子,因此您不必担心示例中的ID重复。

相关推荐