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

时间:2015-09-26 19:21:06

标签: php wordpress

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

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

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

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

我确实找到了其他有同样问题的人,他只是将他的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>");
   }
}   

4 个答案:

答案 0 :(得分:1)

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

let receiveInput (inputBuffer:StringBuilder) (received:Tcp.Received)=
    let text = Encoding.ASCII.GetString(received.Data.ToArray());
    inputBuffer.Append(text) |> ignore

    let all = inputBuffer.ToString()
    match all.IndexOf('\r') with
    | enter when enter >= 0 ->
        let textToProcess = all.Substring(0,enter)
        inputBuffer.Remove(0,enter+2) |> ignore

        //this is the part I'm wondering about
        let stack = new Stack<char>()
        for c in textToProcess do
            if c = '\b' then stack.Pop() |> ignore
            else stack.Push c

        let input = new System.String(stack |> Seq.rev |> Seq.toArray)

        Some(input)
    | _ ->
        None

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

答案 1 :(得分:1)

您应该使用front-page.php而不是home.php。不幸的是,模板层次结构描述已经过时,并没有提到home.php不起作用(尽管它确实说明如果存在front-page.php,它将在index.php之前使用)。 / p>

答案 2 :(得分:0)

您可以在主题根

中创建名为 page-home.php 的文件

然后在里面包括

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

然后创建名为 主页 的页面,并选择模板 主页

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

答案 3 :(得分:0)

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

我不知道为什么这样做,但确实如此。