WordPress子主题简介和原理
WordPress提供了子主题功能,让我们可以通过使用子主题进行修改WordPress主题,而不需要直接修改源码,而出现无法更新的内容。子主题需要有一个父级主题存在才能启用,根据WordPress主题的主要文件,子主题存在,WordPress则会自动使用子主题的文件,而放弃使用父主题。
这样,我们先要修改父级主题的哪一个文件,则可以复制这个文件到子主题中,然后再修改这个文件,这样就可以达到修改的目的了。当然,WordPress的主题核心文件才能够被识别替换,而大部分主题除了主要文件,还有较多其他的文件是无法进行修改的。
一、为什么要使用子主题?
每使用一个主题,多多少少都有可能需要改动的地方,以适合自己的需要。比如,有些是博客主题,想要变成为CMS杂志主题。有些主题中的链接,如底部的无关链接,想要去掉链接,就必须进行一次改动。(如果作者主题链接信息,建议保留出处,免费使用,保留链接是最大的尊重。)在无数次的修改原主题的过程中,你会突然间忘记改了哪里,一旦出错了,你又得必须重来。或者,一旦原主题的作者更新升级了,你需要更新升级的时候,你发现,可能又要重新修改一次。这样,变得很麻烦,想要升级又不想折腾,想要不升级,但是新主题有些功能或是UI改动变得很喜欢。怎么办呢?使用WordPress子主题,可以让你减少因主题升级的烦恼,可以让你折腾过程中出错了,再一次重来,不会不知道要修改哪一个文件。同时,也是你打造多语言站点的主题好帮手。当然,如果你的主题是有多语言的话,那就可以不用子主题。
二、如何启用子主题功能?
方法很简单,创建方法如下:
1、与父主题,即需要创建子主题的原主题同目录下新建一个子主题目录,比如我使用Begin主题创建的子主题为 Begin Child.
2、在子主题目录下创建主题包含的主题文件
style.css (必须)
functions.php (可选)
Template files (可选)
Other files (可选)
screenshot files (可选)
3、修改子主题样式文件 style.css 内容如下:
/*
Theme Name: 子主题名称 如:Begin Child
Theme URI: 主题主页
Author: 主题作者
Author URI: 作者主题
Description: 子主题描述内容
Template: 父主题 如 begin
Version: 主题版本 如 1.8
*/
简单解释如下:
Theme Name. (必需) 子主题的名称。
Theme URI. (可选) 子主题的主页。
Description. (可选) 子主题的描述。比如:我的第一个子主题,真棒!
Author URI. (可选) 作者主页。
Author. (optional) 作者的名字。
Template. (必需) 父主题的目录名,区别大小写。 注意: 当你更改子主题名字时,要先换成别的主题。
Version. (可选) 子主题的版本。比如:0.1,1.0,等。完成以上内容后,即子主题基本上创建完成,已经可以启用子主题,此时的子主题与原主题是没有任何差别的,但是却没有任何样式。
三、子主题使用注意问题
1、创建子主题后,style.css 不能为空,必须有原主题的样式内容。可以直接从原父主题复制 style.css 到子主题中,修改头部为子主题信息。或者直接导入父主题样式文件:@import url("../Begin/style.css"); 然后增加其他样式内容。
2、子主题的主题函数模板 functions.php 中不能使用父主题函数,可以移除父主题不需要的功能函数。因为子主题和父主题都存在 functions.php 函数模板,那么会按先子主题后父主题的顺序同时引入。
3、子主题替换父主题函数模板的某些功能用法如下:
if (!function_exists('theme_new_function')) {function theme_new_function() {// 函数内容.}}
4、其他主题函数文件会替换覆盖同名的父主题模板文件。比如,如果父主题首页模板属于博客模板,在子主题中改成CMS杂志模板,则可以在子主题下建立 index.php 文件,并修改成 CMS杂志模板样式。
以上基本上就是WordPress子主题使用方法和一些说明。如果想要更深入的了解,可以另外自行到WordPress官方网站上查看相关的文章。
2、本站所有文章、图片、资源等如果未标明原创,均为收集自互联网公开资源;分享的图片、资源、视频等,出镜模特均为成年女性正常写真内容,版权归原作者所有,仅作为个人学习、研究以及欣赏!如有涉及下载请24小时内删除;
3、如果您发现本站上有侵犯您的权益的作品,请与我们取得联系,我们会及时修改、删除并致以最深的歉意。邮箱: i-hu#(#换@)foxmail.com