站点:https://www.511yj.com(另有 bbs.511yj.com) 环境:WordPress + 主题 aldehyde(2015 年深度改造版)+ PHP 8.3.33 + 阿里云 ECS 完成日期:2026-10-06 状态:第一阶段全部收尾,进入 2~8 周的搜索引擎观察期
一、紧急故障修复(直接影响收录)
| # | 位置 | 问题 | 修法 | 验证 |
|---|---|---|---|---|
| 1 | functions.php 反采集函数 | 空 UA 返回 500(蜘蛛以为站点故障) | 改 403 + 蜘蛛白名单 + 删除误伤规则 /PHP/i |
空 UA 返回 403 ✅ |
| 2 | AIOSEO → 工具 → Robots.txt | /wp-content/ 拦 CSS/JS、/pagephoto/ 拦配图、/category/ 拦分类页(自伤) |
关闭自定义 robots.txt,用默认;开启 Block Internal Search URLs | curl 确认三行消失 ✅ |
| 3 | 云锁防火墙 | 规则 351 误拦 AIOSEO 保存(把设置字段当 SQL 注入) | 给规则 351 加白名单 | 后台能保存 ✅ |
| 4 | jQuery Updater 插件 | 强制 jQuery 4.0.0,导致 external.js 报 zIndex 错误 |
停用并删除插件,回到 WP 核心自带 jQuery | jQuery.fn.jquery = 3.7.1 ✅ |
| 5 | 站点地图冲突 | XML Sitemap Generator 与 AIOSEO 同时生成地图 | 删除 XML Sitemap Generator | sitemap.xml 归 AIOSEO ✅ |
| 6 | WPJAM 抢走 title/description | WPJAM 输出的 <title> 覆盖了 AIOSEO,导致精心填的关键词标题从未被搜索引擎使用 |
关闭 WPJAM 的 SEO 输出 | 见第五章第 3 条 ✅ |
二、主题模板修改
| # | 文件 | 修改内容 |
|---|---|---|
| 7 | header.php |
补 </head>(原全站缺失);补 wp_body_open();删除未定义的 $keywords/$description(PHP 8.3 报错且与 AIOSEO 重复);删除 IE8 兼容脚本;全部输出转义;站名统一 <h2> |
| 8 | page-shouye.php |
加 sr-only 隐藏 H1(解决首页无 H1);id="small" → class="small"(约 60 处重复 ID) |
| 9 | content-single.php |
特色图加 loading="lazy" + 空判断;删除百度分享(服务已下线) |
| 10 | content-xiangguan.php |
整份重写:<? echo → <?php echo;query_posts → WP_Query;caller_get_posts → ignore_sticky_posts;ORDER BY RAND() → 按日期;删除重复第三块"相关文章"、空 <h3>、重复 ID;图片三级兜底 |
| 11 | footer.php |
http → https(5 处);清理语义错误的 rel="designer";补 .mega-container 闭合;删除 360 收录 JS(document.write 阻塞渲染);版权年份自动 |
三、functions.php 修改
| # | 原行号 | 修改内容 |
|---|---|---|
| 12 | 514-524 | 删除 /go?url= base64 跳转(开放重定向漏洞 + 空壳页)→ 改为只加 nofollow noopener |
| 13 | 285-294 | 删除 eval() 后门(文本小工具可执行任意 PHP) |
| 14 | 396 | 删除 remove_action('wp_footer','wp_print_footer_scripts')(会丢 comment-reply、管理栏等) |
| 15 | 454 | 登录页 logo http:// → home_url('/') |
| 16 | 10-12 | $content_width 640 → 750 |
| 17 | 485 | img 快捷按钮 alt="511遇见" → alt=""(交给自动补 alt 处理) |
| 18 | 433-437 | newPostRefresh → wp_remote_get + blocking=false |
| 19 | 663-670 | IndexNow → blocking=false、timeout 10→5(保存不再卡 10 秒) |
| 20 | 496-508 | bread_nav() 全部输出转义 |
| 21 | 468 | login_errors 返回 null → '' |
| 22 | 582 | 登录 cookie 1 年 → 30 天 |
| 23 | 234 | get_bloginfo('template_url') → get_template_directory_uri()(已废弃) |
| 24 | 574、576 | get_bloginfo('url') ×4 → yj_abs_url()(修废弃函数 + 双域名 bug) |
| 25 | 全文 | 短标签 <? echo 全部清理(PHP 8 已移除短标签) |
已扫描确认安全、无需修改的
| 位置 | 用法 | 判断 |
|---|---|---|
header.php:45 |
get_bloginfo('name') |
✅ 安全,永不废弃 |
inc/extras.php:54,57 |
get_bloginfo('name'/'description') |
✅ 安全 |
只有
url和template_url两个参数被 WordPress 废弃,name/description/charset一直正常。
四、新增代码(追加在 functions.php 末尾)
| # | 作用 |
|---|---|
| 26 | 自动补图片 alt:空 alt / "511遇见" / "请填写图片描述" 自动填「文章标题 配图N」,已认真填过的不覆盖 |
| 27 | 附件页 noindex(wp_robots 钩子) |
| 28 | 附件页 301 跳转到所属文章(无归属则跳首页) |
| 29 | yj_abs_url() 辅助函数:相对路径补全,已是 http 开头的不重复拼域名 |
| 30 | logo / 头部图强转 https(数据库存的是 http,输出时替换) |
| 31 | post_thumbnail_src() 重写:兜底图自动扫描 uploads/default/,按文章 ID 固定取一张(可缓存、不随机跳变) |
兜底图目录
wp-content/uploads/default/ 放 3~5 张同尺寸图(建议 300×200),命名 1.jpg~5.jpg。
注意:img/ 是页脚二维码等专用图,pagephoto/ 是文章配图,都别混用。
仅当文章「无特色图 + 正文无图」时触发 —— 你每篇都设了特色图,所以基本用不上。
⚠️ 关于 nofollow 过滤器的版本选择
早期给的正则版 preg_replace_callback 会重写全文 HTML,在代码块、多行 <a>、属性值含 > 时可能破坏结构导致 CSS 失效。
推荐改用 WP 官方解析器版本(只改属性,不破坏字节):
add_filter('the_content','web589_the_content_nofollow',999);
function web589_the_content_nofollow($content){
if ( empty( $content ) || ! class_exists( 'WP_HTML_Tag_Processor' ) ) {
return $content;
}
$site = wp_parse_url( home_url(), PHP_URL_HOST );
$p = new WP_HTML_Tag_Processor( $content );
while ( $p->next_tag( 'a' ) ) {
$href = $p->get_attribute( 'href' );
if ( empty( $href ) ) continue;
$host = wp_parse_url( $href, PHP_URL_HOST );
if ( ! $host || substr( $host, -strlen( $site ) ) === $site ) continue;
$p->set_attribute( 'rel', 'nofollow noopener' );
$p->set_attribute( 'target', '_blank' );
}
return $p->get_updated_html();
}
五、后台设置调整
| # | 位置 | 设置 |
|---|---|---|
| 32 | AIOSEO → Robots.txt | AI 爬虫拦截:全不勾(当前缺流量,不该再拦) |
| 33 | 后台 → 外观 → 菜单 | 首页 / BBS / 教程 三项 http → https |
| 34 | 侧边栏搜索小工具 | http://www.so.com/s → https |
| 35 | WPJAM → 增强优化 | 前端公共库 → s4.zstatic.net(原 cdnjs.cloudflare.com 国内常超时) |
| 36 | WPJAM → 增强优化 | 取消「分类链接简化」(与 WP No Category Base 插件重复) |
| 37 | WPJAM → 增强优化 | Gravatar → Cravatar;Google 字体 → 中科大;Frame 嵌入 → 只允许同域名 |
| 38 | WPJAM → 增强优化 | 「图片时间戳」保持勾选 ✅ |
| 39 | WPJAM → 功能屏蔽 | 不勾:REST API、WP Cron、feed、oEmbed、RSD |
| 40 | WPJAM → 功能屏蔽 | 建议取消:屏蔽文章修订、屏蔽自动保存(与 functions.php 三重叠加,无回滚手段) |
| 41 | WPJAM → 扩展管理 | 关闭「链接跳转」 ← 它就是 /go?url= 的制造者 |
| 42 | WPJAM → 扩展管理 | 关闭「相关文章」(与主题 content-xiangguan.php 重复) |
| 43 | WPJAM → 扩展管理 | 关闭「文章目录」 ← 会改坏正文 HTML,见第七章第 2 条 |
| 44 | WPJAM → 扩展管理 | 关闭 SEO 设置(与 AIOSEO 抢 title/description) |
| 45 | WPJAM → 扩展管理 | 保留百度站长、Bing 站长工具(token 已填、推送有效) |
| 46 | WPJAM → 扩展管理 | 保留 Rewrite 优化;移动主题、文章类型转换器可关 |
WPJAM vs AIOSEO 元信息冲突(今日最实在的一处修复)
改之前:WPJAM 抢走了最重要的两个标签,你在 AIOSEO 里填的标题搜索引擎根本不用。
| 标签 | 之前(WPJAM) | 现在(AIOSEO) |
|---|---|---|
<title> |
511遇见 \| 不一样的遇见(零关键词) |
511遇见 - 易语言Lua\|大漠多线程\|火山视窗\|WordPress技术分享 ✅ |
description |
逗号堆砌十几个词 | AIOSEO 的完整通顺版本 ✅ |
keywords |
存在(无效标签) | 已消失 ✅ |
og:title |
与 title 不一致 | 与 title 一致 ✅ |
canonical / JSON-LD |
AIOSEO | AIOSEO ✅ |
改完之后仍可优化的两处(可选,不影响排名):
og:site_name还是「511遇见 | 不一样的遇见」→ 去「设置 → 常规 → 站点标题」改成511遇见og:image只有 130×50 → 社交分享时显示极小。建议做一张 1200×630 分享图,去 AIOSEO → 社交网络 → 默认社交图 设置
六、插件处置
✅ 已删除
| 插件 | 理由 |
|---|---|
| XML Sitemap Generator for Google | 与 AIOSEO 抢站点地图,还在根目录生成实体文件 |
| jQuery Updater | 已停用,WP 核心的 3.7.1 接管 |
| Redirection | 装了但没有需要跳转的 URL(分类合并已放弃),空壳留着无意义 |
⏸ 已停用,观察 3~5 天后删
| 插件 | 删之前要确认什么 |
|---|---|
| Advanced Random Posts Widget | 侧边栏少的那一栏确定不要了。想补空位去小工具区加个「最新文章」或「分类」,别装回它(随机内链不利于蜘蛛建立结构) |
| anyLink | 确认文章外链是正常直链、没有 /go?url= |
| Database Backup for WordPress | 先确认服务器/面板有自己的备份(阿里云 ECS 一般有快照),有就不用它 |
| Export All URLs | 🗑 先用一次:工具 → Export All URLs → 导出全站 URL 清单留着(百度主动推送要用),导出完再删 |
✅ 必须保留
| 插件 | 理由 |
|---|---|
| 多合一SEO集 (AIOSEO) | 核心 SEO |
| Baidu Sitemap Generator | 页脚 sitemap_baidu.xml 由它生成,删了页脚链接变 404(已验证 200) |
| WP No Category Base | 负责 /category/ 的 301 跳转(已验证 301) |
| SM Sticky Clicky Star | 首页「推荐阅读」Tab 读的就是它管理的置顶文章(无设置菜单,在文章列表的星星列) |
| Disable Comments RB | 全站强制关评论(无独立菜单,开关在「设置 → 讨论」底部) |
| Redis Object Cache | 数据库对象缓存 |
| Cache Enabler | 页面缓存(与 Redis 不冲突:一个管数据库查询,一个管整页) |
| Menu Icons / 经典小工具 / WPS隐藏登录 / WPJAM Basic | 正常在用 |
删除原则
先停用 → 观察 2~5 天 → 确认无异常 → 再删除。 停用 = 能随时启用回来;删除 = 设置和文件都没了。 别无限期留着停用插件 —— 文件还在硬盘上,仍可被直接通过网址访问。
七、排障要点备忘(重要,以后改站先看这里)
1. 首页 9 宫格是硬编码分类 ID
page-shouye.php 的卡片栏目写死了分类 ID(辅助开发、编程语言、网游单机、手游单机、Bootstrap、Css/Html5、JavaScript/jquery、Apache/Nginx、网站运营 SEO)。
动任何分类结构前,先确认首页、导航有没有引用它 —— 改一个分类会连锁反应好几个地方。
2. ⚠️ WPJAM「文章目录」会改坏正文 HTML
设置成 H6 + 显示在文章内容前面 时,它会扫描 H2~H6 并重写 the_content。
后果:站名(H2)和侧边栏栏目标题(H2)被收进目录;遇到「h2/h3 标题 + <pre> 代码块」混合的文章会破坏标签结构,导致后面内容掉出 .entry-content 容器,CSS 整段失效。
症状:新发的带代码块的文章,排版"有的地方有样式、有的没有"。
解决:关闭该扩展。需要时改用 显示层级 H3 + 使用 [toc] 插入内容中,只在文章里写了 [toc] 的地方生成目录。
3. 云锁会拦截含代码的文章保存
在编辑器粘贴含 HTML/SQL/PHP 的内容时,POST 数据会命中 XSS 规则(编号 201,IMG 标签类)被拦,导致内容只存进去一部分。 解决:云锁加 URL 路径例外,豁免这三个后台接口:
/wp-admin/post.php
/wp-admin/admin-ajax.php
/wp-admin/async-upload.php
4. 数据库备份要选对时间点
改分类这类会动数据库的操作前,单独导出相关表(wp_terms / wp_term_taxonomy / wp_term_relationships)最精准。
阿里云整机快照是最后兜底 —— 它会把文件系统层面的代码改动一起回滚,代价太大,别轻易用。
5. 其他
- 改主题文件后必须同步上传到阿里云 ECS —— 本地 xampp 改了,线上不会自动生效
- 改完先清 Redis + Cache Enabler,再用无痕窗口验证
- robots.txt 和 sitemap.xml 都是虚拟的,根目录找不到实体文件是正常的,不要手动上传
- 云锁禁止根目录写入对 SEO 无影响,反而能防篡改
- AIOSEO 的面包屑结构化数据(JSON-LD)不要关,它是加分项
- 首页 H1 由
page-shouye.php的sr-only隐藏标题提供;文章页 H1 是文章标题;站名统一<h2>,避免双 H1
八、推送相关
| 项目 | 说明 |
|---|---|
| IndexNow(Bing/Yandex/Naver 等) | functions.php 钩子自动推送,已改 blocking=false。百度不支持 IndexNow |
| 百度普通收录 API | WPJAM 百度站长扩展,token 已填、推送有效。注意配额:一次性批量推 1000+ 条可能把剩余配额吃光,以后只推新文章 |
| 密钥 txt 文件 | 🔴 必须保留,主站和 bbs 两个根目录各一份。删了推送全部返回 403 |
| push.php 批量脚本 | 🗑 用完即删,别长期留在公网(会被恶意调用触发 429 限流) |
| 子域名独立 | bbs.511yj.com 和 www.511yj.com 在 IndexNow 眼里是两个 host,各自的根目录都要有密钥文件 |
验证推送是否真正到达:百度搜索资源平台 → 资源提交 → 主动推送 → 看「已收录条数」(推送成功 ≠ 被收录)。
九、遗留待办(不影响运行)
| 项目 | 说明 | 优先级 |
|---|---|---|
| 处理「未分类」文章 | 首页 9 宫格有个卡片显示「没有分类」,是 WP 默认的 uncategorized。去文章列表筛「未分类」,给它们分好类,9 宫格就整齐了 | 中 |
| 开启 WP 自动更新 | functions.php 568 行关闭了自动更新,出安全漏洞无补丁 | 中 |
| 恢复修订版本 | WPJAM + functions.php 两处都禁了,改坏了没有回滚手段 | 中 |
| 精简空分类 | 只删文章数为 0 的分类即可,冷门分类不用动 —— 分类列表在侧边栏靠下,多几行无所谓 | 低 |
| 制作 1200×630 分享图 | 替换 130×50 的 og:image,改善微信/QQ 分享观感 | 低 |
| 原图压缩 | 旅游照片那批原图用 Smush/ShortPixel 压缩,不要手动删缩略图变体(老文章可能有硬编码引用) | 低 |
| 日期粘连 | 老文章显示 2016-01-072016-07-10。需改 inc/template-tags.php。不影响 SEO |
低 |
| 根目录"副本"php 文件 | 主题目录里若有 index.php 副本 之类,移出主题目录 |
中 |
十、常用验证命令(Windows CMD)
REM 先切 UTF-8,避免中文乱码
chcp 65001
REM 空 UA 是否 403
curl -s -o /dev/null -w "%{http_code}\n" -H "User-Agent:" https://www.511yj.com/
REM robots.txt
curl -s https://www.511yj.com/robots.txt
REM 站点地图归属(应显示 All in One SEO)
curl -s https://www.511yj.com/sitemap.xml | findstr /i "All in One"
REM 百度地图(必须 200,页脚在用)
curl -s -o /dev/null -w "%{http_code}\n" https://www.511yj.com/sitemap_baidu.xml
REM 首页 title(应显示 AIOSEO 版本)
curl -s https://www.511yj.com/ | findstr /i "<title>"
REM 首页是否还有 http 链接(无输出 = 通过)
curl -s https://www.511yj.com/ | findstr /i "http://www.511yj.com"
REM 分类旧链接是否 301
curl -s -o /dev/null -w "%{http_code}\n" https://www.511yj.com/category/front-end/
REM 附件页是否 301
curl -s -o /dev/null -w "%{http_code}\n" https://www.511yj.com/511yujian8
REM 文章里是否还有 /go?url=(无输出 = 通过)
curl -s https://www.511yj.com/sf-wydj-34.html > C:\t.html
REM 主题内查找短标签
cd C:\xampp\htdocs\wp-content\themes\aldehyde
findstr /s /i /n /c:"<? " *.php > C:\result.txt
REM 主题内查找废弃函数
findstr /s /i /n /c:"create_function" /c:"mysql_query" /c:"get_bloginfo" *.php > C:\result2.txt
CMD 输出中文乱码时,用
> C:\xxx.txt存成文件再用记事本打开。FINDSTR: 写入错误是管道缓冲区被中文撑爆,不是站点问题。
十一、删除停用插件前的最终检查清单
跑一遍全过再删:
- [ ] 首页正常(9 宫格、轮播、Tab 都在)
- [ ] 分类页正常(
/front-end/有文章、CSS 正常) - [ ] 文章页正常(打开带代码块的那篇,排版完整)
- [ ] 侧边栏完整(搜索、最新文章、视频教程)
- [ ] 附件页 301
- [ ] sitemap.xml 归 AIOSEO
- [ ] sitemap_baidu.xml 返回 200
- [ ] 文章里搜不到
go?url
十二、本次优化成果总览
| 板块 | 状态 |
|---|---|
| 抓取通道(500→403、robots.txt 自伤解除、站点地图统一) | ✅ |
| PHP 8.3 兼容(短标签清零、废弃函数清零、jQuery 3.7.1) | ✅ |
| 页面结构(H1、重复 ID、随机内链、附件页 301+noindex) | ✅ |
安全(/go?url= 开放重定向、eval() 后门、未转义输出、logo 强转 https) |
✅ |
| 元信息统一(WPJAM 抢 title/description 已解决) | ✅ |
| 插件精简(从十几个减到约 10 个) | ✅ |
下一步:等待 2~8 周,观察 Bing / 百度站长后台的抓取量曲线。这段时间不要再做大的结构改动。
十三、后续修复与踩坑补充(2026-10-07 凌晨)
1. 服务器 ERR_TIMED_OUT 故障
现象:改完 main.css 上传后,浏览器报「www.511yj.com 响应时间太长」ERR_TIMED_OUT。
结论:与 CSS 无关。 CSS 是静态文件,最多样式错乱,不可能导致服务器不响应。实际是 PHP-FPM / Apache 重启后卡住。
排查顺序(以后照这个来):
REM 1. 确认影响范围:本地 curl + 手机流量各测一次
curl -s -o /dev/null -w "%{http_code} 耗时:%{time_total}s\n" -m 15 https://www.511yj.com
REM 2. 服务器上看服务状态
systemctl status httpd
systemctl status php-fpm
systemctl status redis
REM 3. 检查配置语法(有错 Apache 会拒绝启动)
httpd -t
ERR_TIMED_OUT+ "响应时间太长" = TCP 能连上但服务器不返回数据 —— 优先怀疑 PHP-FPM 卡死,不是服务器关机。 重启时先想清楚:本地 xampp 的 Apache 和线上 ECS 的 Apache 是两回事,重启本地对线上无任何影响。
2. 🔍 首页卡片 hover 放大效果消失 —— 根因是 Hover.css
现象:首页"图像印记"那 6 张卡片,鼠标移上去不再缓慢放大;分类页、文章页的图都还有效果。
根因(已查实):主题集成了 Hover.css v2.0.1(Ian Lunn,MIT)。放大效果来自它的 .hvr-grow:
.hvr-grow{
display:inline-block; vertical-align:middle;
transform:translateZ(0);
transition-duration:.3s; transition-property:transform;
}
.hvr-grow:active,.hvr-grow:focus,.hvr-grow:hover{
transform:scale(1.1);
}
scale(1.1) + 0.3s 就是"慢慢变大、由远而近"的感觉。
首页失效的原因:page-shouye.php 的卡片 <a> 从来没挂过 hvr-grow,其他模板挂了。
这是主题 2015 年起就存在的模板不一致,不是本次优化改坏的。 排查中曾误判为
small、stxyj、img-thumbnail vs img-responsive,都排除 —— 教训见第 6 条。
修复(二选一):
方案 A —— 给首页 <a> 加类(效果与全站完全一致)
<div class="col-xs-6 col-md-2 stxyj">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"
target="_blank" class="hvr-grow">
<img class="img-thumbnail" src="..." alt="..." loading="lazy" decoding="async">
</a>
<p class="xiangguan-title">...</p>
</div>
⚠️ *别加在 `div.col-
上** ——.hvr-grow自带display:inline-block,会破坏 Bootstrap 栅格浮动布局,6 列全乱。加在` 上最安全。
方案 B —— 自定义 CSS(不动模板,参数与 .hvr-grow 一致)
.stxyj a { overflow: hidden; }
.stxyj img {
-webkit-transform: translateZ(0); transform: translateZ(0);
-webkit-transition-duration: .3s; transition-duration: .3s;
-webkit-transition-property: transform; transition-property: transform;
}
.stxyj:hover img {
-webkit-transform: scale(1.1); transform: scale(1.1);
}
3. main.css 里发现的两个真 bug
bug ①:. stxyj p 选择器失效
. stxyj p{ ← 点和 stxyj 之间有空格
background:#eee; line-height:23px;
color:#999999; margin-bottom:50px;
}
. 后直接跟空格是无效选择器,浏览器会整条规则忽略 —— 标题区的灰底、行高、颜色一直没生效过。这是"首页没其他地方好看"的原因之一。
修正:删掉空格 → .stxyj p
bug ②:overflow:hidden 加错元素
.stxyj img{width:100%;overflow:hidden;}
overflow:hidden 加在 <img> 上没有意义 —— img 不是容器,自身缩放不会被裁剪。
应加在父容器(.stxyj 或包住图片的 <a>)上,才有"图片在框里由远而近"的效果;不加的话图片放大时会撑破格子、把 6 列布局顶歪。
4. id="small" → class="small" 的副作用(本次优化引入)
<time class="small pull-right">...</time>
Bootstrap 自带 .small { font-size: 80% },改成 class 后首页日期字号被缩到 80%。
修法:全部替换 class="small pull-right" → class="pull-right",恢复原字号。
page-sitemap.php里仍保留着<time id="small">(该文件没改过),说明small一直是给日期用的,跟图片放大无关。
5. 标题文字样式微调
.xiangguan-title{
padding-top:5px;
height: 23px; ← 容器 23
line-height: 33px; ← 行高 33
color:#999999; overflow:hidden;
}
行高比容器高 10px,文字会被 overflow:hidden 裁掉一截。 两值必须一致:
.xiangguan-title{ padding-top:5px; height:33px; line-height:33px; color:#999999; overflow:hidden; }
标题背景与网页背景统一:把 .stxyj p 的 background:#eee 改成 background:transparent。
用
transparent而不是#fff—— 不管网页背景是纯白还是带纹理都能自然透出,不会留"补丁色"。
6. 🎯 三次同类失误的教训(最重要的一节)
本次优化过程中犯了同一类错误三次:改了一处,没查谁在用它。
| # | 疏忽 | 后果 |
|---|---|---|
| 1 | 合并 WordPress 子分类,没先看首页引用 | 首页 9 宫格空一格,最终回滚数据库 |
| 2 | id="small" → class="small",没查框架是否占用 |
日期字号被 Bootstrap 缩到 80% |
| 3 | 首页放大效果排查时连猜三次(small/stxyj/img-*)都错 |
浪费大量时间,最后靠备份对比 + 源码直读才定位 |
正确的排查姿势(别再猜):
REM ① 全局搜关键词,看哪些文件引用了它
cd C:\xampp\htdocs\wp-content\themes\aldehyde
findstr /s /i /n /c:"hvr-grow" *.php > C:\hvr.txt
REM ② 备份文件与线上文件对比(最快确认"是不是我改丢的")
fc C:\备份路径\main.css C:\xampp\htdocs\wp-content\themes\aldehyde\main.css
REM ③ 让浏览器直接告诉你(最准)
REM F12 → 选中元素 → 右侧 Styles 面板 → 点 :hov → 勾 :hover
REM 新出现的规则就是答案,面板会显示"哪个文件第几行"
改动前必问三句:
- 这个 id / class / 分类 ID,还有谁在引用它?
- 我用的这个 class 名,框架(Bootstrap / Hover.css)是不是已经占用了?
- 改完之后,首页、导航、侧边栏有没有连锁反应?
7. 分类合并:已放弃,恢复原状
过程:为让侧边栏少显示 4 行,把 WordPress 的 4 个子分类合并进父分类 → 触发首页 9 宫格空一格 → 数据库回滚恢复。
结论:收益(少 4 行)远小于代价(折腾 + 回滚风险)。分类多了 4 行访客根本不在意,搜索引擎更不会因此改观。
最终结果:
- 分类结构恢复原样,4 个子分类保留
- 未删分类 → 不产生 404 → 不需要 301
- Redirection 插件已删除(没有要跳的 URL)
- 数据库用「合并前」的整库备份恢复,仅撤销分类合并,其余设置全部保住
备份时间点选对是这次能全身而退的关键 —— 备份是在"合并分类"这最后一步之前做的,所以只回滚了这一步,前面所有优化成果完好无损。
8. 判断"值不值得做"的原则
以后遇到"要不要动某个东西",先算这笔账:
| 收益 | 代价 | |
|---|---|---|
| 分类合并 | 侧边栏少 4 行 | 首页错乱 + 回滚 + 半天时间 |
收益 < 代价 → 直接不做。
这次的教训是:用户问"有没有必要"时,应该直接回答"没必要,别动",而不是顺着往下出技术方案。
十四、更新后的遗留待办
| 项目 | 说明 | 优先级 |
|---|---|---|
首页卡片加 hvr-grow |
见第十三章第 2 条,让首页放大效果与全站一致 | 中 |
修 . stxyj p 的空格 |
见第十三章第 3 条,否则那条规则一直是失效的 | 中 |
首页 class="small pull-right" → pull-right |
恢复日期字号 | 中 |
.xiangguan-title 的 height/line-height 对齐 |
避免标题文字被裁 | 中 |
| 处理「未分类」文章 | 首页 9 宫格有个卡片显示「没有分类」 | 中 |
| 开启 WP 自动更新 / 恢复修订版本 | 见第九章 | 中 |
| 制作 1200×630 分享图 | 替换 130×50 的 og:image | 低 |
| 精简空分类 | 只删文章数为 0 的即可 | 低 |