diff --git a/assets/admin/src/schema/sections/permissions/index.js b/assets/admin/src/schema/sections/permissions/index.js
index 97b726f9..f00811de 100644
--- a/assets/admin/src/schema/sections/permissions/index.js
+++ b/assets/admin/src/schema/sections/permissions/index.js
@@ -35,12 +35,13 @@ export const permissionsSchemas = {
type: 'radio',
buttonStyle: false,
options: [
+ { label: '关闭', value: '' },
{ label: '腾讯云 Captcha', value: 'tencent' },
{ label: '阿里云 CAPTCHA 2.0', value: 'aliyun' },
{ label: 'Cloudflare Turnstile', value: 'cloudflare' },
{ label: '极验 GeeTest', value: 'geetest' },
],
- dependsOn: 'enabled',
+ dependsOn: { key: 'enabled', value: true },
},
{
key: 'mode',
@@ -50,14 +51,14 @@ export const permissionsSchemas = {
options: [
{ label: '始终显示', value: 'always' },
],
- dependsOn: 'enabled',
+ dependsOn: { key: 'enabled', value: true },
},
{
key: 'disabled_scenarios',
label: '停用场景',
type: 'checkbox',
help: '勾选后表示该场景不启用人机验证;未勾选的场景会启用。',
- dependsOn: 'enabled',
+ dependsOn: { key: 'enabled', value: true },
options: [
{ label: '发表评论', value: 'comment' },
{ label: '用户登录', value: 'login' },
@@ -85,7 +86,7 @@ export const permissionsSchemas = {
type: 'notice',
alertType: 'info',
alertContent: '下方会渲染当前验证码服务商的专属配置面板。保存仍通过统一 schema contract 进行。',
- dependsOn: 'enabled',
+ dependsOn: { key: 'enabled', value: true },
},
{ key: 'tencent', label: '腾讯云配置', type: 'custom', dependsOn: { key: 'active_provider', value: 'tencent' } },
{ key: 'aliyun', label: '阿里云配置', type: 'custom', dependsOn: { key: 'active_provider', value: 'aliyun' } },
@@ -151,7 +152,7 @@ export const permissionsSchemas = {
title: 'Akismet',
icon: 'fas fa-filter',
fields: [
- { key: 'akismet_enabled', label: '启用 Akismet', type: 'switch', dependsOn: 'enabled' },
+ { key: 'akismet_enabled', label: '启用 Akismet', type: 'switch', dependsOn: { key: 'enabled', value: true } },
{ key: 'akismet_site_url', label: 'Site URL', type: 'input', placeholder: 'https://your-site.com', dependsOn: { key: 'akismet_enabled', value: true } },
{ key: 'akismet_blog_lang', label: '博客语言', type: 'input', placeholder: 'zh-CN', dependsOn: { key: 'akismet_enabled', value: true } },
{ key: 'akismet_api_key', label: 'API Key', type: 'input', inputType: 'password', placeholder: 'Akismet API Key', dependsOn: { key: 'akismet_enabled', value: true } },
@@ -162,7 +163,7 @@ export const permissionsSchemas = {
title: 'AI 审核',
icon: 'fas fa-robot',
fields: [
- { key: 'ai_enabled', label: '启用 AI 审核', type: 'switch', dependsOn: 'enabled' },
+ { key: 'ai_enabled', label: '启用 AI 审核', type: 'switch', dependsOn: { key: 'enabled', value: true } },
{ key: 'ai_api_hint', label: '审核 API 配置', type: 'notice', alertType: 'info', alertContent: 'API 接入(百度/阿里云等)在「扩展 → API内容审核」中统一配置,此处仅控制审核范围和策略。', dependsOn: { key: 'ai_enabled', value: true } },
{ key: 'ai_moderate_comments', label: '用户评论', type: 'switch', dependsOn: { key: 'ai_enabled', value: true } },
{ key: 'ai_moderate_background', label: '用户资料背景', type: 'switch', dependsOn: { key: 'ai_enabled', value: true } },
@@ -177,7 +178,7 @@ export const permissionsSchemas = {
title: '关键词拦截',
icon: 'fas fa-ban',
fields: [
- { key: 'blocked_keywords', label: '屏蔽关键词列表', type: 'textarea', rows: 4, placeholder: '每行一个关键词,也支持 /regex/i 格式。命中后会进入待审核并记录原因。', dependsOn: 'enabled' },
+ { key: 'blocked_keywords', label: '屏蔽关键词列表', type: 'textarea', rows: 4, placeholder: '每行一个关键词,也支持 /regex/i 格式。命中后会进入待审核并记录原因。', dependsOn: { key: 'enabled', value: true } },
],
},
{
@@ -185,7 +186,7 @@ export const permissionsSchemas = {
title: '频率限制',
icon: 'fas fa-stopwatch',
fields: [
- { key: 'rate_limit_enabled', label: '启用频率限制', type: 'switch', dependsOn: 'enabled' },
+ { key: 'rate_limit_enabled', label: '启用频率限制', type: 'switch', dependsOn: { key: 'enabled', value: true } },
{ key: 'rate_limit_min_interval', label: '最小间隔(秒)', type: 'number', min: 1, max: 300, dependsOn: { key: 'rate_limit_enabled', value: true } },
{ key: 'rate_limit_max_per_hour', label: '每小时上限', type: 'number', min: 1, max: 200, dependsOn: { key: 'rate_limit_enabled', value: true } },
],
@@ -195,7 +196,7 @@ export const permissionsSchemas = {
title: 'GeoIP 拦截',
icon: 'fas fa-globe-asia',
fields: [
- { key: 'geoip_enabled', label: '启用 GeoIP 拦截', type: 'switch', dependsOn: 'enabled' },
+ { key: 'geoip_enabled', label: '启用 GeoIP 拦截', type: 'switch', dependsOn: { key: 'enabled', value: true } },
{ key: 'geoip_hint', label: 'IP 数据源', type: 'notice', alertType: 'info', alertContent: '复用「扩展 → IP归属地」中配置的数据源和 API Key。', dependsOn: { key: 'geoip_enabled', value: true } },
{ key: 'geoip_block_countries', label: '屏蔽国家/地区', type: 'custom', dependsOn: { key: 'geoip_enabled', value: true } },
],
diff --git a/inc/bootstrap.php b/inc/bootstrap.php
index 481bd6e4..124356f9 100644
--- a/inc/bootstrap.php
+++ b/inc/bootstrap.php
@@ -36,7 +36,6 @@ require_once AKSRT_DIR . '/inc/helpers/aksrt-vip.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-i18n-switch.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-posts-renderer.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-resource.php';
-require_once AKSRT_DIR . '/inc/helpers/aksrt-compat.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-pay.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-credits.php';
require_once AKSRT_DIR . '/inc/helpers/menu-decoration.php';
diff --git a/inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php b/inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php
index 000f000a..a4f91159 100644
--- a/inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php
+++ b/inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php
@@ -23,6 +23,7 @@ class AKSRT_Admin_Schema_Permissions {
['key' => 'basic', 'title' => '基础开关', 'fields' => [
['key' => 'enabled', 'label' => '启用人机验证', 'type' => 'switch', 'default' => false],
['key' => 'active_provider', 'label' => '当前服务商', 'type' => 'radio', 'default' => '', 'dependsOn' => ['key' => 'enabled', 'value' => true], 'options' => [
+ ['label' => '关闭', 'value' => ''],
['label' => '腾讯云 Captcha', 'value' => 'tencent'],
['label' => '阿里云 CAPTCHA 2.0', 'value' => 'aliyun'],
['label' => 'Cloudflare Turnstile', 'value' => 'cloudflare'],
diff --git a/inc/helpers/aksrt-compat.php b/inc/helpers/aksrt-compat.php
deleted file mode 100644
index a6a929dd..00000000
--- a/inc/helpers/aksrt-compat.php
+++ /dev/null
@@ -1,40 +0,0 @@
- !empty($user_center_settings['avatar_upload']),
'avatar_settings_url' => admin_url('profile.php'),
'notification_unread_count' => function_exists('aksrt_get_user_unread_notification_count') ? aksrt_get_user_unread_notification_count($user_id) : 0,
- 'messages_url' => function_exists('aksrt_get_messages_url') ? aksrt_get_messages_url() : aksrt_get_user_center_url('notif'),
+ 'messages_url' => aksrt_get_user_center_url('notif'),
'per_page' => 10,
'posts_page' => max(1, isset($_GET['posts_page']) ? (int) $_GET['posts_page'] : 1),
'comments_page' => max(1, isset($_GET['comments_page']) ? (int) $_GET['comments_page'] : 1),
diff --git a/templates/parts/single-author-bar.php b/templates/parts/single-author-bar.php
index 4be2f50a..15357f26 100644
--- a/templates/parts/single-author-bar.php
+++ b/templates/parts/single-author-bar.php
@@ -64,8 +64,8 @@ $classes = trim('article-avatar ' . $extra_class . ($show_actions ? ' article-av
-
-
+
+