WordPress 子主题(child theme)介绍

        经常开发WordPress主题的朋友往往会遇到一个困惑,虽然主题提供了默认设置,也自带了不少自定义功能,可以满足大部分的场景使用,但毕竟众口难调,一些个性化的需求难免无法满足,这时就必须得修改主题文件来实现需要的效果。

        但是在主题升级之后,修改过之后的文件就会被覆盖,又得再次修改,实在是麻烦。针对这一点,WordPress 使用了一个叫子主题的功能来解决,今天带着大家一起学习下子主题的用法。

一、什么是子主题

        所谓WordPress子主题,就是引用另一个主题同时又比被引用的主题优先级高的主题。也就是说当你制作一个子主题,并把子主题链接到相应的父主题上,如果在子主题里有模板文件就会优先使用,子主题里没有模板文件就会继续调用父主题的模板文件(需要注意的是functions.php 除外,如果子主题和父主题都存在 functions.php 函数模板,那么会按先子主题后父主题的顺序同时引入)。

        简单来说,WordPress子主题也是主题,继承了父主题功能的同时又会覆盖父主题的功能,利用子主题,可以修改和定制父主题,而且不同担心父主题更新导致修改失效,因为子主题一直会存在。一般购买国外的高级主题经常就自带有子主题。

二、如何创建子主题

        WordPress子主题也可以看做一个单独的主题,它只需要在主题目录里放一个 style.css 并在文件里写上一些信息就能生效。

下边是一个清晰的目录结构:

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

三、子主题style.css及说明备注

style.css 文件的内容决定了子主题的重要基本信息,下面给大家举一个例子:

/*
Theme Name: Youplay Child
Theme URI: http://themeforest.net/user/_nK/portfolio
Author: nK
Template: youplay
Author URI: http://nkdev.info/
Description: Youplay Child Theme
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: youplay-child
Tags:
*/@import url(“ ../astra/style.css”);

代码解释:

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

     注意:底部的“ @import ”命令告诉WordPress从何处提取原始CSS文件。完成后,保存文件。   

        这一段 CSS 注释,会被 WordPress 识别,必须放在 style.css 的最顶端。很明显,这段注释里面包含了 主题名称、主题地址、描述、作者、作者名称、模板(父主题)、主题版本号。在这些参数里面,只有 Theme Name 和 Template 是必须有的,其中 Template 参数的作用,就是指定父主题,是在子主题中用的,要填写父主题目录名。在一般的主题中,是不会有 Template 这个参数的。

        新建目录(为方便理解,通过子主题的目录名为“父主题-子主题”,如本例就是youplay-child)并且把上面注释写进 style.css 文件中,登陆 WordPress 后台,找到 主题 选项,就可以看到并且选择这个主题了。【建议使用”父主题名称-child“来命名子主题文件夹,可更好的识别】

四、利用子主题定制父主题

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

        这里需要着重介绍一下functions.php的用法,子主题比较特殊的一个文件是 functions.php,它不会被覆盖,而是按子父主题顺序同时引入。

        利用 functions.php 这个文件就可以最大化的定制主题,不过需要父主题的配合和以及一定的 WordPress 插件 API 知识。

下边的例子在 head 标签里添加响应式网页的元信息:

function Bing_add_responsive_meta()
{
echo '<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" />';
}
add_action( 'wp_head', 'Bing_add_responsive_meta' );

五、利用插件创建子主题

强大的wordpress插件库里自然会有简易的创建子主题插件,给大家推荐两个

  • Child Theme Configurator
  • Child Theme Generator

这两个插件使用非常简单,基本可以一键创建子主题,感兴趣的同学可以尝试一下。

六、启用子主题

        接下来就是激活子主题,转到WordPress仪表盘,点击“外观“->”主题“,你将会看到创建好的子主题,点击“激活”。你现在的WordPress网站将使用父主题的文件和子主题的CSS文件。

         转到WordPress后台中“外观”->“主题编辑器”选项,可在这里编辑子主题。

 

        经过上边的介绍,相信大家对子主题有了更深入的了解了。启用子主题也是非常简单的,回到WordPress后台的主题页面就可以看到刚才创建的子主题了,启用它即可。今天的分享就到这里了,希望能帮助到大家~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/64008.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决MySQL与Redis缓存一致性的问题

背景 考试系统中&#xff0c;教师会在后台发布一场考试&#xff0c;考试会存储在MySQL和Redis里面&#xff0c;考试有时候是会出错的&#xff0c;我们需要后台修改&#xff0c;如果多个教师在后台并发修改&#xff08;概率不大&#xff09;&#xff0c;可能会出现数据库缓存不…

Vue 3.0中的Treeshaking?

1.treeshaking是什么&#xff1f; Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术&#xff0c;专业术语叫 Dead code elimination 简单来讲&#xff0c;就是在保持代码运行结果不变的前提下&#xff0c;去除无用的代码 如果把代码打包比作制作蛋糕&#…

pycharm,VSCode 几个好用的插件

pycharm Tabnine AI Code 可以在编写程序的时候为你提供一些快捷方式&#xff0c;增加编程速度 Chinese 对英文不好的程序员来说是个不错的选择&#xff0c;可以将英文状态下的pycharm变为中文版的 ChatGPT 可以跟ai聊天&#xff0c;ai可以解决你80%的问题 &#xff0c;也可以帮…

让我们玩个游戏:找出缅北诈骗网络中的“狼人杀”!

大数据产业创新服务媒体 ——聚焦数据 改变商业 近期&#xff0c;《孤注一掷》掀起了一阵观影热潮。这部电影展现了在高科技与诈骗手法交织下的惊心动魄的故事&#xff0c;不仅让观众们大呼过瘾&#xff0c;更让人们对现实生活中日益猖獗的缅北诈骗产生了深入的反思。 《孤注一…

浅谈LLAMA2核心函数generate源码

在学习LLAMA2的generate源码之前&#xff0c;先介绍Temperature超参数及sample_top_p的原理。 Temperature Temperature 是一个超参数&#xff0c;可用于控制生成语言模型中生成文本的随机性和创造性。用于调整模型的softmax输出层中预测词的概率。 softmax函数: p ( x i )…

日常BUG—— maven编译报错

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 一个maven项目在由于在代码中书写了如下代码&#xff1a; public static ConcurrentMap<…

shell和反弹shell

文章目录 是什么&#xff1f;bash是什么&#xff1f;反弹shell 是什么&#xff1f; Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。 Shell 是指一种应用程序&#xff0c;这个应用程序提供了…

《甲午》观后感——GPT-3.5所写

《甲午》是一部令人深思的纪录片&#xff0c;通过生动的画面和真实的故事&#xff0c;向观众展示了中国历史上的一段重要时期。观看这部纪录片&#xff0c;我深受触动&#xff0c;对历史的认识也得到了深化。 首先&#xff0c;这部纪录片通过精心搜集的历史资料和珍贵的影像资料…

仅使用 CSS 创建打字机动画效果

创建打字机效果比您想象的要容易。虽然实现这种效果的最常见方法是使用 JavaScript&#xff0c;但我们也可以使用纯 CSS 来创建我们的打字机动画。 在本文中&#xff0c;我们将了解如何仅使用 CSS 创建打字机动画效果。它简单、漂亮、容易。我们还将看看使用 CSS 与 JavaScrip…

【LeetCode】102. 二叉树的层序遍历、107. 二叉树的层序遍历 II

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 102. 二叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节…

IOC容器

DI&#xff08;依赖注入&#xff09;&#xff1a;DI&#xff08;Dependency Injection&#xff09;是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器&#xff0c;使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入…

C语言三子棋小游戏--数组的应用

注&#xff1a;在最后面&#xff0c;完整源码会以两种形式展现。在讲解时&#xff0c;以三个源文件的形式。 前言&#xff1a;三子棋&#xff0c;顾名思义&#xff0c;就是三个子连在一起就可以胜出。在本节我们要介绍的三子棋模式是这样子的&#xff1a;在键盘输入坐标&#x…