0

嗨,我想做的是在 page.php 文件中为每个页面设置一堆 if 语句,例如 if page == aboutus 显示关于我们的内容等等。目前,无论我在哪个页面上,它都会显示 page.php 文件中的所有内容,我确信它只是我编写它的方式。有谁知道我做错了什么?

这是我到目前为止所拥有的

<?php get_head(); ?>

<?php is_page($page); ?>

<?php is_page('about-us'); ?> {

    <div id="container">
    <?php get_header(); ?>
    <?php get_banner(); ?>

        <div class=" center content" role="main">
            <div id="posts">
                <span class="title">About Us</span>     

                <div class="msghead">
                <?php query_posts('cat=7&showposts=1&orderby=date'); while (have_posts()) : the_post(); the_content(); 
                endwhile;?>
                </div>



             </div>

                   <div id="sidebardiv">
                <?php get_sidebar(); ?> </div>
                <div class="clear"> </div>

          </div>

       </div>
    <?php get_footer(); ?>

    </div>

}

<?php is_page('classes'); ?> {

    <div id="container">
    <?php get_header(); ?>
    <?php get_banner(); ?>

        <div class=" center content" role="main">
            <div id="posts">
                <span class="title">Classes</span>     

                <div class="msghead">
                <?php query_posts('cat=7&showposts=1&orderby=date'); while (have_posts()) : the_post(); the_content(); 
                endwhile;?>
                </div>



             </div>

                   <div id="sidebardiv">
                <?php get_sidebar(); ?> </div>
                <div class="clear"> </div>

          </div>

       </div>
    <?php get_footer(); ?>

    </div>

}
4

3 回答 3

2

一种更简单的方法是用于is_page('about-us')检查您的当前页面。

法典:http ://codex.wordpress.org/Function_Reference/is_page

于 2012-11-20T11:16:13.450 回答
2

您实际上并没有检查页面,您只是在运行该is_page()功能,然后显示内容。

此外,当您使用 The Loop 时,您应该首先检查是否有要显示的帖子,以避免错误。

并且作为一个提示 - 如果页面中唯一的区别是显示的帖子,您可以在循环之前设置您的参数,这样您就可以删掉很多代码。这是一个带有该方法示例的Pastebin链接,如下所示。此外,如果模板是 page.php,那么您正在查看的页面已经在循环中,因此您可以利用它来显示页面标题。这是未经测试的,但应该让你开始。

<?php get_head(); ?>

<?php if(is_page('about-us')) : ?>

    <div id="container">
    <?php get_header(); ?>
    <?php get_banner(); ?>

        <div class=" center content" role="main">
            <div id="posts">
                <span class="title">About Us</span>     

                <div class="msghead">
                <?php
                query_posts('cat=7&showposts=1&orderby=date');
                if(have_posts()) : while (have_posts()) : the_post();
                        the_content(); 
                    endwhile;
                endif;
                ?>
                </div>



             </div>

                   <div id="sidebardiv">
                <?php get_sidebar(); ?> </div>
                <div class="clear"> </div>

          </div>

       </div>
    <?php get_footer(); ?>

    </div>

<?php elseif(is_page('classes')) : ?>

    <div id="container">
    <?php get_header(); ?>
    <?php get_banner(); ?>

        <div class=" center content" role="main">
            <div id="posts">
                <span class="title">Classes</span>     

                <div class="msghead">
                <?php
                query_posts('cat=7&showposts=1&orderby=date');
                if(have_posts()) : while (have_posts()) : the_post();
                        the_content(); 
                    endwhile;
                endif;
                ?>
                </div>



             </div>

                   <div id="sidebardiv">
                <?php get_sidebar(); ?> </div>
                <div class="clear"> </div>

          </div>

       </div>
    <?php get_footer(); ?>

    </div>

<?php endif; ?>
于 2012-11-20T11:53:25.590 回答
1

你错过了一个if声明。

例如

<?php if( is_page('about-us') ): ?>
  <p>about-us page here</p>
<?php elseif( is_page('classes') ): ?>
  <p>classes page here</p>
<?php endif; ?>

更直接的方法是为page-about-us.phppage-classes.php

于 2012-11-20T11:58:46.363 回答