Wordpress 不使用 home.php 而是使用 index.php 作为帖子页面。

Posted

技术标签:

【中文标题】Wordpress 不使用 home.php 而是使用 index.php 作为帖子页面。【英文标题】:Wordpress is not using home.php and instead index.php for posts page. 【发布时间】:2015-09-26 19:21:05 【问题描述】:

所以我试图让我的博客页面按照模板层次结构使用 home.php,但它似乎没有使用它。我还在使用正确使用front-page.php 的首页。

如果我进入设置->阅读->并选择我的博客页面作为帖子页面,它似乎会跳过 home.php 并转到 index.php。

我还去了外观->自定义并在那里选择了博客页面,当我在那里选择博客页面时,它暂时显示为 home.php 但是一旦我保存并关闭并返回博客页面,它就会恢复到 index.php。

我找到了一个错误的临时解决方案。我复制了 home.php 并将其重新命名为archive.php,现在它使用的是archive.php 而不是索引。这很奇怪,它似乎根本没有遵循层次结构。

我确实找到了其他有同样问题的人,他只是将他的 home.php 恢复为 index.php :

WordPress posts page PREVIEW using index.php instead of home.php

我使用以下代码(在functions.php中)来显示页面使用的模板:

function show_template() 
   global $template;
   if ( current_user_can('administrator') ) 
      print_r("<div class='template-name' style='padding: 5px; border: 3px solid red; background-color: #FFFFFF; position: fixed; bottom: 0; left: 0;'>$template</div>");
   
   

【问题讨论】:

【参考方案1】:

您应该使用front-page.php 而不是home.php。不幸的是,Template Hierarchy 描述已经过时并且没有提到 home.php 不起作用(尽管它确实声明如果 front-page.php 存在,它将在 index.php 之前使用)。

【讨论】:

谢谢,虽然我已经在首页使用了 front-page.php,但我不知道 home.php 已过时且无法正常工作。它解释了很多。【参考方案2】:

另一种解决方法是创建一个页面模板 (page-blog.php)。在该文件中,确保将其添加到顶部,以便您可以在模板下拉列表中选择此文件:

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

将您的博客页面设置为该模板。然后在阅读部分,如果您还没有或它被重置,请将博客页面设置为您创建的博客页面。

【讨论】:

【参考方案3】:

您可以在主题根目录中创建名为 page-home.php 的文件

然后在里面包含

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

然后创建一个名为Home的页面并选择模板Home Page

然后转到设置 -> 阅读 -> 静态页面 -> 首页 = 主页

【讨论】:

【参考方案4】:

我知道这已经有一年了,但我刚刚遇到了同样的问题并设法通过删除主题中的每个文件然后重新上传所有文件来解决它。

我不知道为什么会这样,但确实有效。

【讨论】:

以上是关于Wordpress 不使用 home.php 而是使用 index.php 作为帖子页面。的主要内容,如果未能解决你的问题,请参考以下文章

php 【WordPress的】home.php

从 WordPress function.php 调用函数到 page-home.php

.htaccess 不重定向到 404.php 而是显示页面名称

wordpress 插件适用于本地主机,但不适用于远程服务器

请帮助:“在Wordpress中为foreach()提供了无效的参数”

链接到 wordpress 中的另一个页面