wordpress设置首页为特定页
2022-07-29 10:13:20
101
{{single.collect_count}}

场景描述

网站首页本是默认显示最近文章的列表,后来做了个页面,并希望将其设置为主页。

解决方案

这个问题在网上的答案大多是在后台“设置-阅读”中设置“一个静态页面”,再选择主页之类的,我甚至跑去安装了个Custom Front Page插件,但是你可能和我一样,发现这么设置并没有用!

探索了一个多礼拜,终于意识到很有可能是主题的问题,我大致梳理下逻辑与大家共享,有不足之处欢迎补充。

1、页面调用

首先,wordpress自带的设置主页功能依赖于主题中的几个文档,我当时无论如何修改wordpress配置,永远都只会调index.php中的内容。front-page.php, home.php, page.php, index.php文件的关系可参考如下:

  • 如果,front-page.php 存在,无论选择 "您的最新文章" 还是 "一个静态页面" 作为首页展示,都是采用 front-page.php 作为模板,没有其他三个文件啥事情。
  • 如果,front-page.php 不存在,并且选择了 "您的最新文章" 作为首页展示,则会以 home.php 作为模板。另外,如果 posts page 也设定了页面,也会用到 home.php.
  • 如果,front-page.php 不存在,并且选择了 "一个静态页面" 作为首页展示,则会使用 page.php 模板。模板的优先级为 page-{id}.php, page-{slug}.php, page.php, index.php
  • 如果,选择了 "您的最新文章" 作为首页展示,并且 home.php 不存在,则会以 index.php 为模板。或者,front page 设置了页面,但是 page.php 不存在,也会使用 index.php 作为模板。

——摘自地址

 看来front-page.php优先级最高,而index.php就是个最可靠的备胎。

 

2、修改.php

我们可以在主题下新建一个front-page.php文件——当然你也可以选择其他策略新建home.php, page.php等。为了全站风格统一,我这边是将index.php的内容直接拷贝到front-page.php,稍作修改并加上以下两行代码:

$page_id =页面的ID;include('article-normal.php');//article-normal.php是我的文章格式

——参考来源

注意不要直接修改index.php,改之前可以做下备份。

最后放上我的网站

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}