在主题中循环发布单个帖子

时间:2016-08-30 作者:Allen Titan

我正在开发wordpress主题。在里面single.php 我想循环的页面与此类似,

<?php while ( have_posts() ) : the_post(); ?>
<?php if ( is_single() ) : ?>
            <div class="post-heading-info">
               <!--Post heading info like title, category goes here -->
            </div>
<?php  endif; ?>
<?php endwhile; ?>
<?php //sidebar widget goes here  ?>

<?php while ( have_posts() ) : the_post(); ?>
<?php if ( is_single() ) : ?>
            <div class="post-content">
               <!--Post content and footer goes here-->
            </div>
<?php  endif; ?>
<?php endwhile; ?>
因此,在上面的代码中,我试图循环所有基本信息,如标题、类别和时间。我想把侧边栏放在中间,然后把内容和帖子的页脚信息放在第二个循环中。

我需要这个,因为在单一的各种选项。php页面布局。基本上,我想把所有标题信息放在所有小部件和帖子内容之上。

我的问题是,Is this the code above acceptable as a good practice?

请在这方面帮助我,在你生命的最后几分钟,我的问题将非常感激和有帮助。

2 个回复
最合适的回答,由SO网友:CodeMascot 整理而成

首先,您不需要与is_single() 在里面single.php. WordPress会自动识别单个帖子content-single.php 把它叫来single.php 具有get_template_part(\'content\', \'single\').single.php 模板如下所示-

<?php while ( have_posts() ) : the_post(); ?>
    <?php get_template_part(\'content\', \'single-heading\');?>
<?php endwhile; ?>
<?php //sidebar widget goes here  ?>
<?php while ( have_posts() ) : the_post(); ?>
    <?php get_template_part(\'content\', \'single\');?>
<?php endwhile; ?>
并创建两个文件content-single.phpcontent-single-heading.php 在目录中single.php 是然后输入以下代码content-single.php-

<div class="post-content">
   <!--Post content and footer goes here-->
</div>
这段代码content-single-heading.php-

<div class="post-heading-info">
   <!--Post heading info like title, category goes here -->
</div>
这将使主题代码更易于维护。有关更多信息,请阅读WordPress codex并分析WordPress默认主题。

SO网友:Rarst

是的,这是完全正常的,尽管您有一些冗余位。

is_single() 检查是不必要的,因为在这种情况下,模板已经在该上下文中。

while( have_posts() ) 在单个视图上也几乎没有必要(您只有一个帖子,为什么要循环它呢?),尽管核心主题仍然倾向于包含它。

相关推荐