这是一个最基本的主题源码(不适用于FSE站点开发),适用于开发海外Wordpress网站应用,可在此基础上编写下一步样式,开发功能等。
本主题主要是禁用了不必要的功能以提高网站安全性及性能,使用前请了解本主题做了什么。
下载地址:
https://10.1pxeye.com/libs/wp-themes/ope25.zip
(压缩包中包含主题及.htaccess文件)
主要代码在主题里的inc文件夹中,解释如下:
const.php
- 标识当前环境是否为开发环境(
ENV_IS_DEV
)。 - 定义站点主页 URL(
HOME
)和主题目录 URL(TU
),方便在代码中使用。 - 控制 REST API 的可用性(
REST_API_USABILITY
)。 - 根据环境(开发或生产)动态设置是否允许编辑文件(
DISALLOW_FILE_EDIT
)和修改文件(DISALLOW_FILE_MODS
),以增强安全性。
dev.php
- 检测当前环境是否为开发环境。
- 在页面底部输出 JavaScript 代码,检查页面是否缺少重要的ogp元标签,meta description或google脚本。
- 根据环境类型(开发或生产),在控制台中输出警告或错误信息。
disabled.php
- 禁用自动更新:
- 禁用核心、插件和主题的自动更新。
- 移除 WordPress 版本生成器:
- 隐藏 WordPress 版本号。
- 禁用管理员邮箱检查:
- 停止定期检查管理员邮箱。
- 禁用应用密码功能:
- 禁用 WordPress 5.6 引入的应用密码功能。
- 禁用 404 猜测重定向:
- 停止 WordPress 对 404 页面的猜测重定向。
- 禁用站点地图:
- 禁用 WordPress 5.5 引入的站点地图功能。
- 禁用登录页面语言选择:
- 移除登录页面的语言选择下拉框。
- 清理
<head>
中的多余标签:- 移除 RSD、WLW Manifest、短链接、Feed 链接、REST API 链接、资源提示、Emoji 脚本等。
- 禁用 XML-RPC:
- 完全禁用 XML-RPC 功能。
- 移除评论功能:
- 移除后台评论菜单、文章和页面的评论支持、评论元框、仪表盘评论小工具。
- 移除仪表盘小工具:
- 移除仪表盘中的多个默认小工具(如活动、快速发布、站点健康等)。
- 禁用密码重置功能:
- 对非管理员用户禁用密码重置功能,并移除相关文本。
- 禁用 Pingbacks:
- 移除 XML-RPC 中的 Pingback 相关方法。
- 禁用 Gravatar 头像:
- 移除 Gravatar 头像功能。
- 禁用 Dashicons 图标:
- 对非管理员用户禁用 Dashicons 图标加载。
- 禁用 RSS 订阅功能:
- 完全禁用 RSS 订阅功能,并显示禁用提示。
disable-rest-api.php
- 定义 REST API 默认 IP 白名单:
- 默认允许
127.0.0.1
和::1
(本地回环地址)访问 REST API。
- 默认允许
- 完全禁用 REST API:
- 如果
REST_API_USABILITY
常量为false
,则完全禁用 REST API。
- 如果
- 禁用 REST API 用户枚举:
- 如果
REST_API_USABILITY
常量为true
,则禁用 REST API 中的用户枚举功能。
- 如果
- REST API 访问控制:
- 检查用户是否已登录且为管理员。
- 检查远程 IP 是否在白名单中。
- 如果未登录且 IP 不在白名单中,则阻止访问特定 REST API 端点(如
users
、posts
等)。 - 如果 REST API 被完全禁用,则返回 404 错误。
- 返回错误响应:
- 如果访问被阻止,返回 404 错误或指定的 HTTP 错误码,并终止脚本执行。
enqueue.php
- 移除不必要的样式文件:
- 在首页、分类页和前端页面中,移除以下样式文件:
wp-block-library
(Gutenberg 编辑器样式)wp-block-library-theme
(Gutenberg 主题样式)wc-block-style
(WooCommerce 块样式)global-styles
(全局样式)classic-theme-styles
(经典主题样式)
- 在首页、分类页和前端页面中,移除以下样式文件:
- 重新注册并加载自定义 jQuery:
- 如果不是后台页面,则移除默认的 jQuery,并加载主题目录下的自定义 jQuery 文件(
/assets/js/jquery.js
)。
- 如果不是后台页面,则移除默认的 jQuery,并加载主题目录下的自定义 jQuery 文件(
- 加载主题的主样式和脚本:
- 加载主题的主样式文件(
/assets/css/style.css
),并使用crc32(date("YmdH"))
生成版本号,确保每小时更新缓存。 - 加载主题的主脚本文件(
/assets/js/script.js
),依赖 jQuery,并放置在页面底部加载。
- 加载主题的主样式文件(
optimize.php
- 优化归档页面标题显示。
- 设置文章摘要长度并添加“阅读更多”链接。
- 根据分类层级加载自定义模板。
- 检查文章是否属于某个分类的子分类。
- 清理上传文件的文件名。
- 移除前端样式和脚本的冗余
type
属性。
support.php
- 自动管理标题标签。
- 启用文章缩略图功能。
- 支持 HTML5 的画廊和图片标题
.htaccess文件代码解释:
设置默认字符集
- 使用
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 压缩(如果服务器支持)。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。