使用wordpress遇到的坑:“混乱”的主题层级结构之首页模板,home.php front-page.php

翻译自:https://www.rarst.net/wordpress/front-page-logic/

开始折腾wordpress,版本WP5;

 万万没想到弄个首页被模板层级结构搞得晕头转向!!

抛开wordpress,但就语义上 homepage和 frontpage他妈的不是一样的么!!!可到了WP这里,麻蛋真恶心……

首页设置项在后台可以选择 最近博文 或者 固定页面,

首页模板具体的继承规则有网友做了总结,这里记录一下,希望能帮助有需要的网友,当然啦,如果看WP codex文档会更好,但是也够够的了!

我觉得更牛逼的是这个主题层级网站:https://wphierarchy.com/

看的我一脸懵逼,好可怕的WP……

▼对于下面的表格,一个是body class,另外是is_home和is_page,好好体会咯,归纳一下home.php是会在循环输出博文内容时用到,font-page.php才是真正的homepage啊,它的优先级杠杠的!

 

 Default

默认

 Static front page

当选择固定页面时

Front page displays

首页显示方式

Your latest posts

最近博文

Front page:
Front

首页样式

Posts page:
Posts

博文样式

URL

域名样式

example.com
(site URL)

网站域名

example.com/posts
(page URL)

页面伪静态域名

Template hierarchy

模板层级

front-page.php

使用font-page.php模板

home.php

使用home.php模板

home.php

缺少front-page.php就会

去寻找home.php

从上至下依次找,找到谁就用

  • $custom.php
  • page-$slug.php
  • page-$id.php
  • page.php 
  • singular.php

index.php

命根子模板index.php

Body classes

前台网页body标签的class样式名

  • home
  • blog
  • home
  • page
  • page-id-$id
blog

Loop and content

模板内容

posts index page posts index

home_url()

内置函数的值

https://example.com
get_post_type_archive_link('post') https://example.com https://example.com/posts

is_front_page()

内置逻辑判断函数

true false

is_home()

内置逻辑判断函数

true false true

is_page()

内置逻辑判断函数

false true false
get_option( 'show_on_front' ) 'posts' 'page'
get_option( 'page_on_front' ) 0 Front page ID  
get_option( 'page_for_posts' ) 0   Posts page ID

猜你喜欢

转载自blog.csdn.net/xuwenze1991/article/details/85387118