这是一个最基本的主题源码(不适用于FSE站点开发),适用于开发海外Wordpress网站应用,可在此基础上编写下一步样式,开发功能等。
本主题主要是禁用了不必要的功能以提高网站安全性及性能,使用前请了解本主题做了什么。

下载地址:

http://local/10.complexmission.com/libs/wp-themes/cm.7z

(压缩包中包含主题及.htaccess文件)

const.php
  1. 标识当前环境是否为开发环境(ENV_IS_DEV)。
  2. 定义站点主页 URL(HOME)和主题目录 URL(TU),方便在代码中使用。
  3. 控制 REST API 的可用性(REST_API_USABILITY)。
  4. 根据环境(开发或生产)动态设置是否允许编辑文件(DISALLOW_FILE_EDIT)和修改文件(DISALLOW_FILE_MODS),以增强安全性。
dev.php
  1. 检测当前环境是否为开发环境。
  2. 在页面底部输出 JavaScript 代码,检查页面是否缺少重要的ogp元标签,meta description或google脚本。
  3. 根据环境类型(开发或生产),在控制台中输出警告或错误信息。
disabled.php
  1. 禁用自动更新:
    • 禁用核心、插件和主题的自动更新。
  2. 移除 WordPress 版本生成器:
    • 隐藏 WordPress 版本号。
  3. 禁用管理员邮箱检查:
    • 停止定期检查管理员邮箱。
  4. 禁用应用密码功能:
    • 禁用 WordPress 5.6 引入的应用密码功能。
  5. 禁用 404 猜测重定向:
    • 停止 WordPress 对 404 页面的猜测重定向。
  6. 禁用站点地图:
    • 禁用 WordPress 5.5 引入的站点地图功能。
  7. 禁用登录页面语言选择:
    • 移除登录页面的语言选择下拉框。
  8. 清理 <head> 中的多余标签:
    • 移除 RSD、WLW Manifest、短链接、Feed 链接、REST API 链接、资源提示、Emoji 脚本等。
  9. 禁用 XML-RPC:
    • 完全禁用 XML-RPC 功能。
  10. 移除评论功能:
    • 移除后台评论菜单、文章和页面的评论支持、评论元框、仪表盘评论小工具。
  11. 移除仪表盘小工具:
    • 移除仪表盘中的多个默认小工具(如活动、快速发布、站点健康等)。
  12. 禁用密码重置功能:
    • 对非管理员用户禁用密码重置功能,并移除相关文本。
  13. 禁用 Pingbacks:
    • 移除 XML-RPC 中的 Pingback 相关方法。
  14. 禁用 Gravatar 头像:
    • 移除 Gravatar 头像功能。
  15. 禁用 Dashicons 图标:
    • 对非管理员用户禁用 Dashicons 图标加载。
  16. 禁用 RSS 订阅功能:
    • 完全禁用 RSS 订阅功能,并显示禁用提示。
disable-rest-api.php
  1. 定义 REST API 默认 IP 白名单:
    • 默认允许 127.0.0.1 和 ::1(本地回环地址)访问 REST API。
  2. 完全禁用 REST API:
    • 如果 REST_API_USABILITY 常量为 false,则完全禁用 REST API。
  3. 禁用 REST API 用户枚举:
    • 如果 REST_API_USABILITY 常量为 true,则禁用 REST API 中的用户枚举功能。
  4. REST API 访问控制:
    • 检查用户是否已登录且为管理员。
    • 检查远程 IP 是否在白名单中。
    • 如果未登录且 IP 不在白名单中,则阻止访问特定 REST API 端点(如 users、posts 等)。
    • 如果 REST API 被完全禁用,则返回 404 错误。
  5. 返回错误响应:
    • 如果访问被阻止,返回 404 错误或指定的 HTTP 错误码,并终止脚本执行。
enqueue.php
  1. 移除不必要的样式文件:
    • 在首页、分类页和前端页面中,移除以下样式文件:
      • wp-block-library(Gutenberg 编辑器样式)
      • wp-block-library-theme(Gutenberg 主题样式)
      • wc-block-style(WooCommerce 块样式)
      • global-styles(全局样式)
      • classic-theme-styles(经典主题样式)
  2. 重新注册并加载自定义 jQuery:
    • 如果不是后台页面,则移除默认的 jQuery,并加载主题目录下的自定义 jQuery 文件(/assets/js/jquery.js)。
  3. 加载主题的主样式和脚本:
    • 加载主题的主样式文件(/assets/css/style.css),并使用 crc32(date("YmdH")) 生成版本号,确保每小时更新缓存。
    • 加载主题的主脚本文件(/assets/js/script.js),依赖 jQuery,并放置在页面底部加载。
optimize.php
  1. 优化归档页面标题显示。
  2. 设置文章摘要长度并添加“阅读更多”链接。
  3. 根据分类层级加载自定义模板。
  4. 检查文章是否属于某个分类的子分类。
  5. 清理上传文件的文件名。
  6. 移除前端样式和脚本的冗余 type 属性。
support.php
  1. 自动管理标题标签。
  2. 启用文章缩略图功能。
  3. 支持 HTML5 的画廊和图片标题
设置默认字符集
  • 使用 AddDefaultCharset utf-8 将默认字符集设置为 UTF-8,确保内容正确显示。
定义 MIME 类型
  • 使用 mod_mime 模块为特定文件类型(如 .js、.mjs、.webmanifest、.json 等)定义正确的 MIME 类型。
  • 为特定文件类型(如 .css、.js、.json 等)添加 UTF-8 字符集。
启用缓存控制
  • 使用 mod_expires 模块为不同类型的文件设置缓存过期时间:
    • 默认缓存时间为 1 年。
    • 动态文件(如 HTML、XML、JSON)不缓存。
    • 图片、CSS、JavaScript 等静态资源缓存 1 年。
    • RSS、Atom 等文件缓存 1 小时。
增强安全性
  • 使用 <FilesMatch> 禁止访问敏感文件(如 xmlrpc.php、wp-comments-post.php、wp-config.php)。
  • 使用 mod_headers 模块设置 HTTP 安全头:
    • Strict-Transport-Security:强制使用 HTTPS,有效期 1 年。
    • X-XSS-Protection:启用 XSS 保护。
    • X-Content-Type-Options:禁止 MIME 类型嗅探。
    • X-Frame-Options:防止页面被嵌入到其他站点的 iframe 中。
    • Content-Security-Policy:限制资源加载来源。
    • Referrer-Policy:控制 Referer 头的发送行为。
    • Permissions-Policy:禁用麦克风和摄像头权限。
移除不必要的 HTTP 头
  • 对于静态资源文件(如图片、CSS、JavaScript 等),移除不必要的 HTTP 头(如 X-UA-Compatible、X-XSS-Protection、CSP 相关头)。
启用压缩
  • 使用 mod_deflate 模块对 HTML、CSS、JavaScript、JSON 等文件启用 Gzip 压缩。
  • 使用 mod_brotli 模块对相同文件类型启用 Brotli 压缩(如果服务器支持)。