1. 基本信息
| 信息项 | 详情 |
|---|---|
| 文件名称 | sidebar-left.php |
| 文件路径 | /usr/themes/default/sidebar-left.php |
| 修改描述 | 修复BUG |
| 最后更新 | 2026-05-02 |
2. 修改说明(简述)
修复了首页左侧栏全局置顶文章数量不遵循插件配置的问题。原代码仅通过单一方式读取配置,当配置读取失败时始终使用默认值5篇。修改后增加了双重读取机制,确保正确获取插件设置的置顶数量。
3. 修改详情(核心内容)
修改点 1:全局置顶数量配置读取逻辑(第 7-35 行)
修改前代码:
$categoryStickyConfig = $options->plugin('CategorySticky');
if ($categoryStickyConfig && property_exists($categoryStickyConfig, 'global_sticky_count')) {
$configValue = intval($categoryStickyConfig->global_sticky_count);
if ($configValue > 0) {
$globalStickyCount = $configValue;
}
}修改后代码:
// 方法1:尝试从Widget_Options获取插件配置
$categoryStickyConfig = $options->plugin('CategorySticky');
if ($categoryStickyConfig && isset($categoryStickyConfig->global_sticky_count)) {
$configValue = intval($categoryStickyConfig->global_sticky_count);
if ($configValue > 0) {
$globalStickyCount = $configValue;
}
}
// 方法2:如果方法1失败,直接从数据库读取配置
if ($globalStickyCount == 5) {
$pluginConfig = $db->fetchRow($db->select('value')
->from('table.options')
->where('name = ?', 'plugin:CategorySticky'));
if ($pluginConfig) {
$configData = Typecho_Common::jsonDecode($pluginConfig['value'], true);
if (isset($configData['global_sticky_count']) && intval($configData['global_sticky_count']) > 0) {
$globalStickyCount = intval($configData['global_sticky_count']);
}
}
}修改作用:增加了配置读取的双重保障机制。当标准插件配置接口无法获取配置时,自动降级到直接从数据库读取,确保侧边栏置顶文章数量始终遵循插件后台设置。
4. 影响范围
- 影响模块:首页左侧栏(sidebar-left.php)的全局置顶文章列表展示
- 配置更新:无需额外配置,修改后自动读取现有插件配置
- 数据库:仅增加了一条查询,无数据变更
5. 测试建议
- 在插件后台设置「全局置顶数量」为20篇
- 访问首页查看左侧栏置顶文章列表
- 确认显示数量与插件配置一致(如设置20则显示20篇,若数据库中置顶文章不足则显示实际数量)
暂无评论