1

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

问题:当我在主题文件夹中包含文件“page.php”时,页面上没有加载任何内容。我的意思不仅仅是视觉上的。模板中的任何元素都不会出现在页面上。我在主题文件夹中也有“index.php”。当从文件夹中删除“page.php”时,主题会按原样加载所有内容。根据WordPress Hierarchy,我的理解是在页面模板之前调用索引。我确实计划使用页面。所以在我看来,“page.php”正在与 index.php 竞争并破坏模板。

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

我试过的:

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

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

非常感谢您对此事的任何帮助。最近这里是 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>
4

3 回答 3

2

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

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

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

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

至少,在我看来是这样的。任何想改进此答案或进行更正的人请这样做。

于 2012-10-02T17:29:30.290 回答
0

只是一个想法,但是您的主页可以设置为页面而不是博客吗?如设置>阅读。http://codex.wordpress.org/Creating_a_Static_Front_Page

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

于 2012-09-29T20:21:02.337 回答
0

下面可能会有所帮助。

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

于 2021-05-07T14:59:42.780 回答