361 361Sale WordPress Care by Openbyt · WordPress 修复与运维

WordPress 子主题中 style.css 和 functions.php 必须写什么?完整且严谨的实战教程

托尼屎大颗
,
WordPress 子主题中 style.css 和 functions.php 必须写什么?完整且严谨的实战教程

在 WordPress 网站开发和主题定制中,使用子主题(Child Theme) 是官方推荐的最佳实践。通过子主题,可以在不修改父主题源码的情况下,自由调整样式和功能,避免父主题更新导致自定义内容丢失。但操作时,很多用户不清楚 style.css 和 functions.php 哪些内容是必须编写。本文将围绕这一核心主题,重点讲清子主题中这两个关键文件的必写内容、推荐写法以及常见易错点,帮助你正确创建和使用子主题。

WordPress 子主题中 style.css 和 functions.php 必须写什么?完整且严谨的实战教程

一、什么是 WordPress 子主题?

1. 子主题的定义

子主题是一个依赖父主题运行的主题。它可以继承父主题的:

同时允许你在子主题中覆盖或扩展这些内容。

2. 为什么要使用子主题?

直接修改父主题文件会带来以下问题:

而使用子主题的优势在于:

只要你打算修改主题,就应该使用子主题。

二、子主题的最小可用结构

一个可以被 WordPress 正常识别并启用的子主题,理论上只需要一个文件

your-child-theme/
└── style.css

但在实际开发中,几乎都会同时使用 functions.php

your-child-theme/
├── style.css
└── functions.php

原因是:

style.css 与 functions.php 的职责总结

文件名是否必须主要作用
style.css声明子主题身份、编写 CSS
functions.php否(强烈建议)控制样式加载、添加功能
表格:子主题核心文件作用说明

三、子主题 style.css 必须写什么?

1. style.css 的核心作用

在子主题中,style.css 有两个主要作用:

  1. 向 WordPress 声明这是一个主题
  2. 存放子主题自己的 CSS 样式

其中,主题声明信息是必须的,哪怕你暂时不写任何 CSS。

示例:WordPress子主题style.css文件

2. style.css 中必须存在的主题头信息

WordPress 通过 style.css 文件顶部的注释来识别主题。

最简必需写法

/*
Theme Name: My Child Theme
Template: parent-theme-folder
*/

Theme Name 和 Template 是子主题必不可少的字段,字段说明:

3. 推荐的完整主题头信息(最佳实践)

这些字段虽然不是全部必填,但对于教程网站、团队项目和长期维护来说非常有价值。

/*
Theme Name: My Child Theme
Theme URI: https://example.com/my-child-theme
Description: 基于 XX 父主题开发的子主题
Author: Your Name
Author URI: https://example.com
Template: parent-theme-folder
Version: 1.0.0
*/

各字段作用如下:

4. 在 style.css 中编写样式

在主题头信息下方,可以直接编写 CSS:

body {
    background-color: #f5f5f5;
}

需要注意的是:

5. style.css 中不推荐的做法

以下做法已不再推荐使用:

错误示例:

@import url("../parent-theme/style.css");

这种方式会影响性能,也可能导致样式加载顺序问题。

四、子主题 functions.php 必须写什么?

1. functions.php 的作用说明

子主题的 functions.php 用于:

需要明确的是:子主题的 functions.php 不会覆盖父主题的 functions.php,而是会在父主题加载完成后执行。

2. 是否一定需要 functions.php?

从技术上讲:

子主题在没有 functions.php 的情况下也可以正常运行。
但在实际项目中,为了保证兼容性和可控性,通常仍然建议创建 functions.php 文件

场景是否需要
只启用子主题,不改任何内容不一定
需要控制样式加载顺序需要
添加任何功能必须
商业 / 长期项目强烈建议
表格:是否需要 functions.php 的判断依据

3. functions.php 中最常见、最安全的写法:加载样式

下面是官方推荐、兼容性最好的写法之一:

<?php
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );

function my_child_theme_enqueue_styles() {

    wp_enqueue_style(
        'parent-style',
        get_template_directory_uri() . '/style.css'
    );

    wp_enqueue_style(
        'child-style',
        get_stylesheet_uri(),
        array( 'parent-style' )
    );
}

说明:

在使用前,建议查看父主题的 functions.php,确认其样式文件位置和加载方式。

4. functions.php 中的常见扩展用法

添加主题支持

add_theme_support( 'post-thumbnails' );
add_theme_support( 'title-tag' );

注册导航菜单

register_nav_menus( array(
    'main-menu' => '主导航菜单',
) );

引入子主题其他功能文件

require_once get_stylesheet_directory() . '/inc/custom-functions.php';

5. functions.php 的注意事项

五、完整可用的子主题示例

style.css 示例

/*
Theme Name: My Child Theme
Template: twentytwentyfour
Version: 1.0.0
*/

body {
    font-family: Arial, sans-serif;
}

functions.php 示例

<?php
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );

function my_child_theme_enqueue_styles() {
    wp_enqueue_style(
        'parent-style',
        get_template_directory_uri() . '/style.css'
    );

    wp_enqueue_style(
        'child-style',
        get_stylesheet_uri(),
        array( 'parent-style' )
    );
}
需要工程师帮你判断?

把症状、错误提示和最近改动发过来。

我们先判断风险、可能原因和安全下一步,再决定是否需要登录后台或服务器。

开始初诊

需要把这篇文章里的排查落到你的网站上吗?

把网址、错误提示、最近改动和影响范围发过来。我们先判断风险、备份状态和安全下一步;涉及数据库、支付、订单或安全问题时,不建议直接在生产站连续试错。

公开检测 · 无需注册 · 先判断风险 提交后会生成工单编号
初诊阶段不要提交后台、主机、数据库或支付账号密码。
紧急宕机、结账失败、安全跳转优先复核;普通问题通常 1 个工作日内回复。 初诊阶段不需要后台密码;需要权限时会单独确认最小权限和回滚方式。
提交前提醒先保留备份和错误提示,不要在生产站连续试错。