WordPress page.php与index.php竞争

时间:2012-09-29 17:45:08

标签: wordpress file themes wordpress-theming hierarchy

背景:我正忙着为WordPress进行主题开发。我是个菜鸟。我已经完成了关于如何开发主题的多个教程。我认为,我目前正在研究的主题存在页面竞争问题。我正在MAMP上构建它(如果这很重要)。现在这个新主题并不多。我刚开始制作了我认为我需要的所有模板文件。除“index.php”和“style.css”之外的所有内容都是空白的。函数文件中也没有任何内容。页眉和页脚以及菜单的所有信息目前都在“index.php”中。

问题:当我在主题文件夹中包含文件“page.php”时,页面上没有任何内容加载。我并不仅仅是视觉上的意思。模板中的所有元素都不会出现在页面上。我也在主题文件夹中有“index.php”。当从文件夹中删除“page.php”时,主题将按照应有的方式加载所有内容。根据{{​​3}},我的理解是在页面模板之前调用索引。我打算使用网页。所以在我看来,“page.php”正在与index.php竞争并打破模板。

问题:“page.php”是“index.php”的竞争对手吗?如何修复它以免破坏我的主题?为什么它可以在我的主题上而不是在其他主题上这样做?

我尝试过的事情:

  • 将“index.php”的内容复制到“page.php”中。然后主题按预期加载,但我预计这会导致问题。
  • 将页面模板留空,索引模板充满代码,不会产生任何结果。将索引留空并且页面中包含完整的代码会导致主题加载。
  • 从另一个主题复制“page.php”。主题破了。从另一个主题复制索引。还是坏了。
  • 更改CSS只是为了确保我没有任何导致这些元素不显示的CSS。但是,当我使用firebug或查看源时,它们甚至都不显示。

我读过的内容:我已经完成了我的作业,尝试解决问题,而不必在堆栈上提出另一个问题,但我似乎无法找到有同样问题的其他人(这只会让我觉得这可能是显而易见的,我做错了但是因为我是一个菜鸟,我错过了它或者什么)。我已经完整地阅读了所有这些内容:

非常感谢任何有关此事的帮助。 Latly这里是index.php的内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>WordPress Training Wheels</title>

        <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />
        <link href='http://fonts.googleapis.com/css?family=Dancing+Script:400,700' rel='stylesheet' type='text/css'>
    </head>

    <body>

        <div id="container" class="container_16">

            <div id="header" class="grid_16"><!-- Header Begins Here -->
                <h1><a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1>
                <h2><?php bloginfo('description'); ?></h2>
                <?php
                wp_nav_menu(
                        array(
                            'theme_location' => 'top_header',
                            'container' => 'div',
                            'container_id' => 'top-menu',
                            'menu_class' => 'top-menu-list',
                            'fallback_cb' => 'false'
                ));
                ?>
            </div>

            <?php
            wp_nav_menu(
                    array(
                        'theme_location' => 'bottom_header',
                        'container' => 'div',
                        'container_id' => 'menu',
                        'menu_class' => 'bottom-menu-list'
            ));
            ?>

            <div id="content">

                <div class="sidebar left grid_3"><!-- Left Sidebar Begins Here -->
                    <h4>Sidebar Header</h4>
                    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Left Sidebar') ) : ?> 
                        <h3 class="widget-title">Categories</h3>  
                        <ul>  
                            <?php wp_list_categories(); ?>  
                        </ul>  
                        <h3 class="widget-title">Archives</h3>  
                        <ul>  
                            <?php wp_get_archives(array('type' => 'monthly')); ?>  
                        </ul>  
                    <?php endif; ?> 
                </div>

                <div id="middle-column" class="grid_6"><!-- Main Content Begins Here -->
                    <h3>Training Wheels Lesson 1</h3>
                    <p><img src="<?php bloginfo('template_directory'); ?>/images/training-wheels.jpg" width="426" height="142" alt="Training Wheels" /></p>
                </div>

                <div class="sidebar right grid_3"><!-- Right Sidebar Begins Here -->
                    <h4>Sidebar Header</h4>
                    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Right Sidebar') ) : ?>  
                        <h4>No Widgets added</h4>  
                        <p>Please login and add some widgets to this sidebar</p>  
                    <?php endif; ?> 
                </div>

                <div style="clear:both;"></div>

            </div><!-- Content Ends Here -->

            <div id="footer"><!-- Footer Content Begins Here -->
                <p>&copy; Wordpress Training Wheels, by wpbedouine</p>
            </div>

        </div>

    </body>

</html>

3 个答案:

答案 0 :(得分:2)

经过大量的搜索,我相信我找到了解决方案。 “home.php”并没有被主题使用,因为我在顶部的评论中没有重要的一句话。我补充说:

<?php
/*
Template Name: Front Page
*/
?>

到“home.php”的顶部,然后进入wp-admin并点击页面&gt;所有页面&gt; home。然后,我在页面编辑器的右侧找到了一个名为“Template”的下拉列表项。我将其从“默认模板”更改为“首页”。

我想我阅读层次结构的方式让我认为WordPress会自动使用“home.php”或“front-page.php”作为主页的模板。显然这是一个不正确的假设,因为在评论中没有该行并告诉它使用什么模板,WordPress将只使用page.php作为模板。

至少,这就是我的看法。任何想要改进这个答案或进行更正的人都可以。

答案 1 :(得分:0)

只是一个想法,但你的主页可以设置为一个页面,而不是博客?与设置&gt;阅读一样。 http://codex.wordpress.org/Creating_a_Static_Front_Page

否则,我不明白为什么你的主页会使用page.php而不是index.php。

答案 2 :(得分:0)

以下内容可能会有所帮助。

如果您同时设置了主页和博客页面,那么 wordpress 使用 index.php 作为博客,使用 front-page.php 作为您设置的主页。 Incase,只设置了主页,没有创建front-page.php,它只使用index.php