为什么wordpress主题在单个页面中循环

时间:2014-07-21 11:19:35

标签: php wordpress

我是wordpress和wordpress循环的新手。我试图了解循环但没有任何成功。贝尔和我在一起我会试着解释一下我不理解的东西......

我使用名为'graphy'的模板。当我创建一个'Page'时,有一个创建没有侧栏的页面的选项,模板被称为'nosidebar.php',这是它的代码:

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

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

            <?php get_template_part( 'content', 'page' ); ?>

            <?php
                // If comments are open or we have at least one comment, load up the comment template
                if ( comments_open() || '0' != get_comments_number() ) :
                    comments_template();
                endif;
            ?>

        <?php endwhile; // end of the loop. ?>

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

1-为什么这个模板包含一个循环?它只显示没有侧栏的单页内容!显然它不会循环显示帖子并显示它们!

我尝试创建自己的模板页面,该页面仅用于首页,这就是我想出的内容

<?php
/**
 * Template Name: Main_Page
 * Description: A page template without sidebar.
 *
 * @package Graphy
 */
get_header();
?>

<!--<div id="primary" class="content-area">-->
<!--<main id="main" class="site-main" role="main">-->
<div id="main_content">
<?php 
    the_content(); // the content  
?>
</div>
<!--</main> #main -->
<!--</div> #primary -->

<?php get_footer(); ?>

然而,当我安装this plugin用于向页面和帖子插入小部件时 使用main_page没有显示小部件但是当我切换到“没有侧边栏页面”时它工作了。 然后我将循环复制到我的主页面并且它有效。

2-这个循环使插件工作的秘诀是什么,而仅调用<?php the_content() ?>则没有?显然,这个循环比其他90%的帖子解释的还要多。

2 个答案:

答案 0 :(得分:1)

在第一个问题上,页面模板会输出信息,这就是您看到循环的原因。显示的信息是在tinymce编辑器内的页面编辑器屏幕中输入的信息。

为了更好地理解,请阅读我最近在WPSE上完成的这两篇文章

在问题二中,the_content()不输出侧边栏和小部件,而是输入到帖子编辑器中的内容。侧栏显示特定的呼叫。

您需要查看主题如何注册侧边栏。我还怀疑你的侧边栏行为是由body_classes操纵的。不幸的是,我无法提供帮助,因为这非常特定于您的主题

答案 1 :(得分:0)

全部关于the_post();,不需要任何while循环。 试试这个

<?php
the_post();
the_content();
?>

它会起作用。 the_post()是检索帖子内容的函数。 仅当从类别中调用检索时才需要while循环。