Files
wordpress-kratos-yang/style.css
T
laoyang 75848f2ba2 3.2.53 后台小工具页恢复传统拖放面板(#23)
现象:用户在后台「外观 → 小工具」找不到可以拖动挂件的地方,看到的全是区块。

根因:WP 5.8 起后台小工具页默认走区块编辑器
(wp-admin/widgets-form-blocks.php),它没有「从左栏拖到右栏」这个动作,
只能点「+」再搜名字。本主题此前从未关掉它。

改动:
1. 关闭区块小工具编辑器,两道开关互为备份
   - add_filter('use_widgets_block_editor', '__return_false')
   - remove_theme_support('widgets-block-editor'),挂 after_setup_theme:20
     (核心 wp_setup_widgets_block_editor 挂在 priority 1 默认 add,
       所以 remove 必须晚于它,否则静默失败)
2. 4 个挂件(ad/about/tags/posts)构造函数的名字改为显式传第 2 参

关于第 2 点的性质说明(重要,避免误读成"修了缺陷"):
原先写 parent::__construct(false, false, $widget_ops) 时,
$widget->name 确实是 false,但后台列表/搜索读的**不是**它,而是
$wp_registered_widgets[...]['name']。后者经
wp_register_sidebar_widget() 里的 array_merge($widget, $options)
被 $widget_ops['name'] 覆盖成真名字。
实测(老代码):$widget->name = false,
$wp_registered_widgets['ad-1']['name'] = '图片广告'。
所以挂件名字从来没空过,用户找不到挂件与名字无关,纯粹是区块编辑器没有拖放。
第 2 点属于可读性清理(不再依赖隐式覆盖),不是用户可见缺陷的修复。

id_base 全部保持原值(ad/about/tags/posts),已有挂件实例不会丢。

验证:
- 真实 WP 7.1.3 加载待发布包,页面级 28 条 + 元数据 50 条判据全绿
- 老代码跑同一套判据:仅区块开关相关失败,名字类判据全部通过(印证上述判断)
- 9 组反证全部真红(含「只去掉一道开关仍应全绿」的冗余性验证)
- 96 个 PHP 文件全量 lint 通过
2026-10-27 09:21:02 +08:00

14 lines
609 B
CSS

/*
Theme Name: Kratos_Yang
Text Domain: kratos_Yang
Version: 3.2.53
Requires PHP: 7.0
Description: 这是一个Kratos主题的分支版本,用来增加一些定制化功能。
Tags: 博客, 双栏, 响应式, 自定义背景, 自定义颜色, 自定义图标, 自定义菜单, 特色图像, 收录优化, 邮件中心, 主题选项, 小工具, 文章置顶, 无障碍友好
Author: Yongquan Yang
Author URI: https://yangyq.net
Theme URI: https://code.yangyq.net/laoyang/wordpress-kratos-yang
License: MIT License
License URI: https://code.yangyq.net/laoyang/wordpress-kratos-yang/src/branch/main/LICENSE
*/