WordPress 子主题的用法

很多用 WordPress 的同学都会有一个困惑,虽然很多主题都提供了丰富的设置,但是难免每个人的需求都不一样,不可能都顾及,这时就必须得修改主题文件来实现需要的效果。
但是在主题升级之后,修改过之后的文件就会被覆盖,又得再次修改,实在是麻烦。针对这一点,WordPress 使用了一个叫子主题的功能来解决。
所谓子主题,就是引用另一个主题同时又比被引用的主题优先级高的主题,当你制作一个子主题,并把子主题链接到相应的父主题上,如果在子主题里有模板文件就会优先使用,子主题里没有模板文件才会继续调用父主题的模板文件(functions.php 除外,如果子主题和父主题都存在 functions.php 函数模板,那么会按先子主题后父主题的顺序同时引入)。
简单来说,子主题也是主题,继承了父主题功能的同时又会覆盖父主题的功能,利用子主题,可以修改和定制父主题,而且不同担心父主题更新导致修改失效,因为子主题一直会存在。

创建子主题

子主题也可以看做一个单独的主题,他只需要在主题目录里放一个 style.css 并在文件里写上一些信息就能生效。
下边是一个清晰的目录结构:

  • wp-content
    • themes(主题目录)
      • wpmee(父主题目录)
        • index.php(必须)
        • style.css(必须)
        • functions.php
        • header.php
        • footer.php
        • (完整的模板)……
      • wpmee-Child(子主题目录)
        • style.css(必须)
        • functions.php
        • (可选部分的模板文件,会覆盖同名的父主题模板文件)……

style.css

style.css 文件的内容决定了子主题的重要基本信息,下图是一个例子,框出来的部分是必须的信息:

/*
Theme Name: wpmee Child
Theme URI: https://www.wpstorm.cn
Description: The template by <a href=”https://www.wpmee.com”>wpmee</a>.
Author: wpmee
Author URI: https://www.wpmee.com
Template: wpmee
Version: 1.0
*/

代码解释:

  • Theme Name(必须):子主题名字
  • Theme URI(可选):子主题的页面
  • Description(可选):子主题的描述
  • Author(可选):子主题作者
  • Author URI(可选):子主题作者的网站
  • Template(必须):父主题目录名,区分大小写
  • Version(可选):子主题版本

主要看加亮的必须参数就好,名字没什么好说,会在后台显示;Template 要注意,决定子主题归属于哪个父主题,要填写父主题目录名。

插件创建子主题

有一个叫做 Orbisius Child Theme Creator 的插件,可以一键创建子主题,我并没有测试,感兴趣的同学可以尝试一下。

启用子主题

经过上边的操作,回到后台的主题页面就可以看到刚才创建的子主题了,启用它。
可以发现和启用父主题的效果是完全一样的,只是主题的名字变成了 “EndSkin Child”。

利用子主题定制父主题

子主题最终的用途是来定制父主题,比如要定制首页的内容,只需要把相应的模板文件放在子主题目录,WordPress 检测到就会自动优先调用。

functions.php

子主题比较特殊的一个文件是 functions.php,他不会被覆盖,而是按子父主题顺序同时引入。
利用 functions.php 这个文件就可以最大化的定制主题,不过需要父主题的配合和以及一定的 WordPress 插件 API 知识。
下边的例子在 head 标签里添加响应式网页的元信息:

function wpmee_add_responsive_meta(){
echo ‘<meta name=”viewport” content=”width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0″ />’;
}
add_action( ‘wp_head’, ‘wpmee_add_responsive_meta’ );

相关推荐

发表回复

房先生
我们将24小时内回复。
2024-05-11 06:41:02
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
2781198
加我微信
[电话联系]
13585372227
[电子邮件]
chaoneo@163.com
取消

选择聊天工具: