置顶AIYA-Optimize 又一款WordPress优化插件
AIYA-Optimize 是一款练习时长 2.5 个月的 WordPress 优化插件,完全遵照WP官方文档代码组方,针对多种WP疑难杂症,精选80+项功能,基于PHP古法工艺制作而成。具有降低血压、安神舒筋、假装高手等多重功效,乃 WordPress 站长居家旅行必备之佳品。
请认准 Yeraph Studio 厂家正品网站 ,全国不包邮,付款不到货,只交学费,不包教会!
点击立即咨询 (bushi)
插件说明
我正经一点.jpg
这个插件是 AIYA-CMS 主题核心 这一项目的插件版本打包,就和我在此项目的介绍里说的一样,项目本身是我鼓捣的一个设置选项框架 和 一整套的预置功能,我简单更新了一下选项框架的代码,好让它支持以插件方式加载,所以我们现在有了 AIYA-Optimize 优化插件。
下载
由于暂无计划发布 Release ,所以你可以直接以zip形式下载这个项目,然后直接当作插件上传到你的WP站点,项目文件本身已包含WP所必要的标识信息。
功能列表
本项目的所有功能完全通过WP内置的钩子和过滤器实现,理论上的兼容性应当是最佳的。
但这些功能是否能够兼容你使用的主题或插件仍然个未知数,请自行测试功能生效和报错,如有需要请提 issues 或本贴或任何我能看得到的地方留言。
插件的选项界面针对每一项功能已配置了完整的描述,以下部分仅做复制。
优化设置
此列表是一些WP主题或其他优化类插件的常见功能:配置站点图标、禁用WP功能、页面优化、易用性相关的功能调整
title | desc |
---|---|
配置 favicon.ico | 上传站点 favicon 图标,可以为任意图片格式,不需要时留空 |
禁用自动更新(不建议) | 禁用WP自动更新,以解决WP无法连接到wordpress.org时产生报错 |
禁用管理员邮箱确认 | 禁用WP内置的管理员用户定期提示邮箱确认功能 |
禁用XML-RPC | 此选项通过替换动作函数使XML-RPC无法工作,并不能彻底禁用此功能 *如需彻底禁用XML-RPC,应当在服务器中通过WAF策略等方式阻止外部对 /xmlrpc.php 文件的访问 |
阻止 PingBack | 启用后阻止所有 PingBack 动作,关闭后仅阻止 PingBack 自己 *PingBack、Enclosures和Trackbacks是XML-RPC的功能,禁用XML-RPC后此选项不会生效 |
禁用 REST-API | 禁用 REST-API 接口,启用后访问此接口会返回报错 |
验证 REST-API 请求来源 | 不禁用 REST-API 接口,但在 REST-API 内部添加来源验证 |
禁用 Feed | 禁用 Feed 功能 (RSS),启用后访问此接口会返回报错 |
禁用字体和语言包组件 | 禁用 WP 内置的翻译组件,并禁用语言包文件加载 |
禁用嵌入功能 | 禁用 WP 内置的嵌入功能(oEmbed),移除 <head> 标签中嵌入的功能组件 |
禁用自动链接解析 | 禁用 WP 内置的自动链接解析(Auto-Embed),阻止Youtube等外部网站输入时自动加载为 <iframe> |
禁用自动字符转换 | 禁用 WP 内置的自动标点符号转换功能,阻止英文引号转义为中文引号和标签自动校正 |
禁用 s.w.org 标记 | 禁用 WP 内置的DNS预解析功能(dns-prefetch) |
精简<head>结构 | 精简 <head> 中的日志链接、短链接、RSD接口等无用标签 |
移除emoji's | 禁止 WP 加载 Emoji's 组件和相关样式 |
移除古腾堡样式 | 禁用 Gutenberg 引入的样式 *会导致前台通过Gutenberg自定义的外观失效,注意检查 |
禁用谷歌字体 | 禁止 WP 加载谷歌字体,并移除样式 |
禁用静态文件版本号 | 移除前台静态文件加载时引入的版本号 *可能会导致用户浏览器缓存的静态文件和服务器不一致,谨慎使用 |
启用链接管理器 | 启用 WP 内置的链接管理器功能 |
禁用修订版本记录 | 禁用 WP 编辑器的修订版本记录功能 |
禁用自动保存 | 禁用 WP 编辑器的自动保存功能 |
Sitemap 去除用户列表 | 禁止站点的/wp-sitemap.xml 中生成Users列表 |
后台页面设置为中文 | 适配一些外贸站点和国内站点,将后台页面语言强制替换为zh_CN *此选项不是翻译功能,只是为了去除浏览器的翻译页面提示 |
允许WEBP图片上传 | 去除 WP 上传WEBP图片时产生的报错 |
附件自动重命名 | 由于 WP 实际上并不具有完整的文件管理器功能(此功能可避免重复文件名的文件过多造成大量SQL查询) |
禁用图片自动缩放 | *此选项通过将 WP 图片大小默认值设置为0 来生效,可被 媒体设置 覆盖 |
禁用超大图片自动缩放 | 禁止 WP 对大于5000px*7000px的图像自动缩放 |
移除隐私政策页面 | 移除 WP 为欧洲通用数据保护条例(GDPR)生成的页面 |
中文安装包优化 | 移除 cn.wordpress.org 下载的 WP 安装包中的一些无用代码 |
查询设置
此列表的功能包括:SQL优化、查询过滤、搜索过滤、搜索功能限制,此处设置均会操作主查询,但也只影响主查询。
title | desc |
---|---|
跳过SQL计数 | 主循环中跳过计算SQL匹配总数,提高查询速度,这对文章数量比较多的站点非常有用 |
取消文章置顶 | 禁用文章置顶,按默认的文章排序输出 |
显示自定文章类型 | 将自定义的文章类型加入到主查询 *此项仅对本插件创建的文章类型有效 |
首页中排除分类 | 填写首页排除分类的ID,通过, 分隔 |
首页中排除文章 | 填写首页排除文章的ID,通过, 分隔 |
搜索结果包含页面 | 搜索时同时搜索页面和文章添加到搜索结果 |
搜索结果匹配分类 | 当搜索关键词与分类/标签/自定义分类相同时,返回分类中的文章 |
搜索中排除分类 | 填写搜索时排除分类的ID,通过, 分隔 |
搜索中排除文章 | 填写搜索时排除文章的ID,通过, 分隔 |
登录用户显示全部文章 | 对管理员或登录用户自己,显示全部状态的文章(包含草稿、待发布、已删除等) |
搜索页重定向 | 强制?s= 参数跳转到search/ 页面,使搜索页面静态化 |
搜索结果是否为空 | 当搜索关键词输入为空时,重定向到首页 |
搜索结果跳过 | 当搜索结果有且只有一篇文章时,直接转到文章页 |
启用搜索限制 | 根据IP或用户角色限制搜索功能,防止滥用 |
搜索用户验证 | 仅允许已登录的用户使用搜索功能,或关闭搜索 |
最大搜索关键词长度 | 计算单位为字节,限制最大长度255字节(一个汉字为3个字节,一个英文字母为1个字节) |
每分钟搜索限制 | 每分钟最大搜索次数,达到上限之后屏蔽10分钟 |
只搜索文章标题 | 不搜索文章内容和摘要,提高搜索响应速度 |
允许搜索文章ID | 允许搜索ID查找文章,多个ID时支持, 分隔 |
允许搜索自定义字段 | 允许搜索自定义字段(postmeta),会大幅影响查询速度,请谨慎使用 |
指定搜索自定义字段 | 接续上一项设置,设置接受搜索的自定义字段,请输入支持的 meta_key |
安全性设置
一些简单的站点安全防护功能:后台入口权限验证、登录页验证、登录信息验证、robots.txt 规则自定义、URL 参数过滤和浏览器UA过滤。
PS:由于这些功能通常一些其他的优化插件中是没有的,或者实现方式不同,使用前也应详细测试。
title | desc |
---|---|
禁止后台访问 | 根据用户角色判断,禁止权限不足的用户访问后台并重定向回首页 |
简单登录页防护 | 为登录页面附加访问参数,隐藏登录表单防止脚本暴力破解 |
登录页自动跳转 | 通过JavaScript方式,等待5秒后自动跳转到带有访问参数的地址 *如果禁用自动跳转,请牢记设置的认证参数 |
登录页认证参数 | 接续上一项设置,登录页面的URL格式为 /wp-login.php?auth=path_login |
禁止管理员找回密码 | 禁止权限为管理员的用户发起密码找回 |
用户名验证 | 登录/注册时对用户信息进行验证,避免不安全的用户名 |
登录时禁止用户名 | 接续上一项设置,指定禁止使用的用户名,通过, 分隔*执行全词匹配,区分大小写 |
注册时清理用户名 | 接续上一项设置,用户注册时去除不安全用户名和不安全的字符,通过, 分隔*执行半匹配,不区分大小写 |
启用 Robots 规则 | 自定义站点 /robots.txt 的内容,禁用则引用站点默认设置 |
自定义 robots.txt | 自定义robots.txt的内容,语法参考: robotstxt.org |
启用 URL 参数验证 | 屏蔽一些和站点无关的参数访问,也可以用于防止百度统计刷数据 |
屏蔽参数关键字 | 接续上一项设置,填写需要屏蔽的 Url 参数关键字,通过, 分隔 |
启用 UA 验证 | 屏蔽一些无用的搜索引擎蜘蛛对网站的页面爬取和防御采集器,节约服务器CPU、内存、带宽的开销 |
验证 UA 是否为空 | 禁止空 USER AGENT 访问,大部分采集程序都是空 UA ,部分SQL注入工具也是空 UA |
屏蔽 UA 列表 | 接续上一项设置,填写需要屏蔽的 UA 列表,通过, 分隔,不区分大小写 |
拓展功能:头像加速
配置头像加速CDN,或者直接切换为WeAvatar,针对一些海外主题,还提供了谷歌字体加速。
title | desc |
---|---|
上传默认头像 | 此功能创建了一个新的头像标志,需要在WP的 讨论设置 中,将默认头像设置切换为此选项 Tips: 如果使用头像加速时可能会失效 |
使用WeAvatar | 使用 weavatar.com 头像服务替代Gravatar |
Gravatar加速 | 替换 gravatar.com 头像服务的地址到镜像源,和上一项互斥 |
Gravatar镜像源 | 使用Gravatar头像服务的镜像源 |
自定义镜像 | 使用自定义Gravatar头像服务的镜像源 |
强制HTTPS | 强制头像服务通过HTTPS加载 |
Google字体加速 | 使用Google字体镜像源 |
Google字体镜像源 | 使用Google字体的镜像源,加速主题加载 |
自定义镜像地址 | 使用自定义Google字体的镜像加速服务地址 |
拓展功能:SEO组件
支持一些简单的SEO优化(关键词描述和简单的自动内链)。
这个组件会使用内置的方法替代站点原始的页面标题格式以支持分页显示等功能。
title | desc |
---|---|
SEO标题 | 留空则默认引用站点设置 |
SEO副标题 | 留空则默认引用站点描述设置 |
显示站点副标题 | 是否显示副标题(站点描述) |
标题分隔符 | 设置标题文本的分隔符,默认添加空格补正 |
启用SEO组件 | 同时启用文章和分类SEO组件,如果使用其他SEO插件则需要禁用此项 |
首页SEO关键词 | 添加到首页关键词,仅影响首页 |
首页SEO描述 | 添加到首页描述,仅影响首页 |
关键词列表 | 添加文本替换列表,一行一个,不需要时留空 *格式举例: 站点首页|<a href="http://local.host">站点首页</a> |
文章自动检索标签 | 检索全部正文,添加已存在的标签到文章(*该动作仅在文章保存时触发) *说明:内部使用 strpos() 方法,匹配不一定准确 |
文内标签自动链接 | 自动为正文内匹配到的标签添加超链接 *说明:规则为匹配到标签在文中出现 2 次自动添加链接,只添加 1 次 |
拓展功能:添加站长统计和额外代码
支持极简添加。
title | desc |
---|---|
Google Analytics(分析) | 填写谷歌统计的衡量ID(通常为UA- 或G- 开头,非数据流ID)*仅需填写统计ID,代码自动补全 |
百度统计 | 填写百度统计的跟踪ID(位于/hm.js? 之后的那段参数) |
额外JS | 配置站点额外JavaScript代码,该项已包含script 标签 |
额外CSS | 配置站点额外CSS,该项已包含style 标签 |
拓展功能:STMP送信
普普通通STMP送信支持。
title | desc |
---|---|
禁止通知站长 | 禁用新用户注册通知站长的邮件 |
禁止通知用户 | 禁用新用户注册通知用户的邮件 |
启用SMTP | 启用SMTP邮件发送功能 |
拓展功能:分类 URL 重建
这个组件会通过重写路由的方式,移除分类URL中 /category/
层级,开启此功能前请勿同时开启其他类似功能,无限重定向警告。
其他小功能
仪表盘中显示服务器状态信息小组件(介绍)
DEBUG功能,在页面中输出SQL和include等信息用于调试。
简码列表,列出当前站点支持的所有短代码。
路由列表。列出当前站点的所有路由和重写规则。
作者你好,我刚刚爱发电赞助了这个插件,想请教你关于WordPress的问题:
我改写了wp官方主题的分页代码,用纯sql命令改写的,想着提高分页的速度。但是运行的时候主循环还是在调用wp默认的分页代码。用Query Monitor 插件看的时候WP_Query->get_posts
Main Query 还在连表查询并分页。想问问有没有什么办法屏蔽默认的分页,不知你的联系方式,我的QQ1186270306,如果可以解决的话,我可以付费,谢谢你
这个插件里的方法是直接在主循环中ban了计数器,代码 ‘$query->set('no_found_rows', true);’,这会导致WP原生的分页方法抛出false,也会提高一些查询速度。
对于你的问题,WP官方对于分页有一些说明:https://codex.wordpress.org/Pagination
所以,因为主题默认就会调用 the_posts_pagination()之类的方法,就一定会产生分页计数。
干掉分页的方法一般有两种,兼容性比较好的方法是在文章列表开始while循环之前通过query_posts('posts_per_page=10')这样的方法获取文章列表,这个方法的参数有现成的生成器,我直接转一个:https://www.ashuwp.com/query_args
不使用paged参数,就可以去掉分页,但是这就彻底无法分页了。或者可以查询文章数量-1,可以获得一个类似全表查询,然后给查询结果存起来,再用自定义的分页计数方法即可。
另一种方法是在'request'这个过滤器钩子上使用自定义的SQL语句,这个钩子执行的返回可以彻底跳过默认查询。但是这样就需要重新实现默认查询,因为WP的查询默认就是连表的,WP还需要获取meta表以及其他表里的信息,不然可能导致WP自身报错。
一些使用WP的大型网站用的都是'request'或者'parse_query'钩子重新实现的查询方法,但是这里最大的问题是这种方法基本完全放弃了兼容性。
另另外,一点我个人认为的,提高速度的终极解决方案得是缓存。直接给查询结果存起来就好了。