@@ -134,548 +29,199 @@ $get_network_notice = function ($section_options) use ($is_network_controlled) {
-
-
@@ -2091,7 +802,7 @@ jQuery(document).ready(function($) {
$('#post-conversion-options').hide();
}
});
-
+
// 控制浏览器重定向相关选项的显示/隐藏
$('select[name="wpcco_browser_redirect"]').change(function() {
if ($(this).val() == '0') {
@@ -2100,19 +811,19 @@ jQuery(document).ready(function($) {
$('.browser-redirect-dependent').show();
}
});
-
+
// 控制扩展语言模块的显示/隐藏
function toggleExtendedLanguages() {
var showMoreLangs = $('#wpcc_show_more_langs').is(':checked');
var extendedSection = $('.wpcc-extended-languages');
-
+
if (showMoreLangs) {
extendedSection.show();
} else {
extendedSection.hide();
}
}
-
+
// 检测是否使用Gutenberg编辑器
function isGutenbergActive() {
// 检查WordPress是否启用了Gutenberg编辑器
@@ -2120,61 +831,49 @@ jQuery(document).ready(function($) {
if (typeof wpccAdminData !== 'undefined' && wpccAdminData.isGutenbergActive !== undefined) {
return wpccAdminData.isGutenbergActive;
}
-
+
// 备用检测方法:检查是否存在Gutenberg相关的全局变量
- return (typeof wp !== 'undefined' && wp.blocks) ||
+ return (typeof wp !== 'undefined' && wp.blocks) ||
document.body.classList.contains('block-editor-page') ||
document.querySelector('.block-editor') !== null ||
(typeof window.wp !== 'undefined' && window.wp.blockEditor);
}
-
+
// 控制编辑器增强选项的启用/禁用
function toggleEditorEnhancementOptions() {
var isGutenberg = isGutenbergActive();
var quicktagsOption = $('input[name="wpcc_no_conversion_qtag"]').closest('tr');
var postConversionOption = $('input[name="wpcc_enable_post_conversion"]').closest('tr');
-
+
if (isGutenberg) {
// Gutenberg环境下只禁用快速标签功能,保留发表时转换功能
quicktagsOption.find('.wpcc-switch').addClass('wpcc-disabled');
quicktagsOption.find('input[type="checkbox"]').prop('disabled', true);
-quicktagsOption.find('.description').html('');
-
+ quicktagsOption.find('.description').html('
');
+
// 发表时转换功能在区块编辑器下保持可用
postConversionOption.find('.wpcc-switch').removeClass('wpcc-disabled');
postConversionOption.find('input[type="checkbox"]').prop('disabled', false);
- postConversionOption.find('.description').html('');
+ postConversionOption.find('.description').html('');
} else {
// 经典编辑器环境下启用所有编辑器增强功能
quicktagsOption.find('.wpcc-switch').removeClass('wpcc-disabled');
quicktagsOption.find('input[type="checkbox"]').prop('disabled', false);
-quicktagsOption.find('.description').html('');
-
+ quicktagsOption.find('.description').html('');
+
postConversionOption.find('.wpcc-switch').removeClass('wpcc-disabled');
postConversionOption.find('input[type="checkbox"]').prop('disabled', false);
- postConversionOption.find('.description').html('');
+ postConversionOption.find('.description').html('');
}
}
-
+
// 控制引擎相关选项的启用/禁用
function toggleEngineRelatedOptions() {
var engine = $('select[name="wpcc_engine"]').val();
var jpOption = $('#zh-jp-option');
var jpCheckbox = jpOption.find('input[type="checkbox"]');
var jpInput = jpOption.find('input[type="text"]');
-
+
if (engine === 'opencc') {
// OpenCC 引擎支持日式汉字
jpCheckbox.prop('disabled', false);
@@ -2187,29 +886,20 @@ quicktagsOption.find('.description').html(' 默认语言行显示/隐藏
- function toggleSiteXDefault() {
- var enabled = $('input[name="wpcc_enable_hreflang_x_default"]').is(':checked');
- $('#wpcc-site-x-default-options').toggle(enabled);
- }
- $('input[name="wpcc_enable_hreflang_x_default"]').on('change', toggleSiteXDefault);
-
+
// 页面加载时检查
toggleExtendedLanguages();
toggleEngineRelatedOptions();
toggleEditorEnhancementOptions();
- toggleSiteXDefault();
-
+
// 显示更多语言选项改变时
$('#wpcc_show_more_langs').change(function() {
toggleExtendedLanguages();
});
-
+
// 转换引擎改变时检查
$('select[name="wpcc_engine"]').change(function() {
toggleEngineRelatedOptions();
});
});
-
+
\ No newline at end of file
diff --git a/wp-chinese-converter.php b/wp-chinese-converter.php
index ec4346d..b5d39dc 100755
--- a/wp-chinese-converter.php
+++ b/wp-chinese-converter.php
@@ -6,7 +6,7 @@
* Author URI: https://wpcc.net
* Text Domain: wp-chinese-converter
* Domain Path: /languages
-* Version: 1.5
+ * Version: 1.3.0
* License: GPLv3 or later
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
*/
@@ -25,7 +25,7 @@
// 基础常量定义
define("wpcc_DEBUG", false);
-define("wpcc_VERSION", "1.5");
+define("wpcc_VERSION", "1.3.0");
// 插件URL常量
if (defined("WP_PLUGIN_URL")) {
@@ -60,17 +60,8 @@ use Overtrue\PHPOpenCC\OpenCC;
use Overtrue\PHPOpenCC\Strategy;
// 载入核心依赖
-require_once dirname(__FILE__) .
- "/includes/core/class-wpcc-exception-handler.php";
-require_once dirname(__FILE__) . "/includes/core/class-wpcc-utils.php";
-require_once dirname(__FILE__) .
- "/includes/core/class-wpcc-language-config.php";
-require_once dirname(__FILE__) . "/includes/core/class-wpcc-converter-factory.php";
-require_once dirname(__FILE__) . "/includes/core/class-wpcc-module-manager.php";
-require_once dirname(__FILE__) . "/includes/core/class-wpcc-conversion-cache.php";
-require_once dirname(__FILE__) . "/includes/core/class-wpcc-config.php";
-require_once dirname(__FILE__) . "/includes/core/class-wpcc-presets.php";
-require_once dirname(__FILE__) . "/includes/core/class-wpcc-main.php";
+require_once dirname(__FILE__) . "/includes/core/class-converter-factory.php";
+require_once dirname(__FILE__) . "/includes/core/class-module-manager.php";
require_once dirname(__FILE__) . "/includes/blocks/blocks-init.php";
// 加载JS和CSS资源
@@ -82,31 +73,52 @@ function wpcc_add_global_js()
"wpcc-variant",
plugins_url("/assets/dist/wpcc-variant.umd.js", __FILE__),
[],
- wpcc_VERSION,
+ "1.1.0",
);
wp_register_script(
"wpcc-block-script-ok",
plugins_url("/assets/js/wpcc-block-script-ok.js", __FILE__),
["wp-blocks", "wp-element", "wpcc-variant"],
- wpcc_VERSION,
+ "1.3.0",
);
wp_enqueue_script(["wpcc-variant", "wpcc-block-script-ok"]);
- $use_permalink_type = 0;
- if (is_array($wpcc_options) && isset($wpcc_options["wpcc_use_permalink"])) {
- $use_permalink_type = (int) $wpcc_options["wpcc_use_permalink"];
- }
wp_localize_script("wpcc-block-script-ok", "wpc_switcher_use_permalink", [
- "type" => $use_permalink_type,
+ "type" => $wpcc_options["wpcc_use_permalink"],
]);
}
-// 初始化现代化架构
-$wpcc_main = WPCC_Main::get_instance();
-$wpcc_config = $wpcc_main->get_config();
-
-// 保持向后兼容性
-$wpcc_options = $wpcc_config->get_all_options();
+// 获取插件配置
+$wpcc_options = get_wpcc_option("wpcc_options");
+if (empty($wpcc_options)) {
+ $wpcc_options = [
+ "wpcc_search_conversion" => 1,
+ "wpcc_used_langs" => [
+ "zh-hans",
+ "zh-hant",
+ "zh-cn",
+ "zh-hk",
+ "zh-sg",
+ "zh-tw",
+ ],
+ "wpcc_browser_redirect" => 0,
+ "wpcc_auto_language_recong" => 0,
+ "wpcc_flag_option" => 1,
+ "wpcc_use_cookie_variant" => 0,
+ "wpcc_use_fullpage_conversion" => 1,
+ "wpcco_use_sitemap" => 1,
+ "wpcc_trackback_plugin_author" => 0,
+ "wpcc_add_author_link" => 0,
+ "wpcc_use_permalink" => 0,
+ "wpcc_no_conversion_tag" => "",
+ "wpcc_no_conversion_ja" => 0,
+ "wpcc_no_conversion_qtag" => 0,
+ "wpcc_enable_post_conversion" => 0,
+ "wpcc_post_conversion_target" => "zh-cn",
+ "wpcc_engine" => "opencc", // alternative: mediawiki
+ "nctip" => "",
+ ];
+}
// 加载站点地图模块
$modules_dir = __DIR__ . "/includes/modules/";
@@ -114,37 +126,33 @@ if (file_exists($modules_dir . "wpcc-sitemap.php")) {
require_once $modules_dir . "wpcc-sitemap.php";
}
-// 加载网络设置模块
-if (
- is_multisite() &&
- file_exists(__DIR__ . "/includes/network/wpcc-network-settings.php")
-) {
- require_once __DIR__ . "/includes/network/wpcc-network-settings.php";
- add_action("init", ["WPCC_Network_Settings", "init"]);
-}
-
-
// 容错处理 - 只有配置正确时才加载功能
if (
$wpcc_options != false &&
is_array($wpcc_options) &&
is_array($wpcc_options["wpcc_used_langs"])
) {
- // 加载遗留的核心功能模块(为了向后兼容)
+ // 加载核心功能模块
require_once dirname(__FILE__) . "/includes/wpcc-core.php";
- // 确保核心初始化与查询变量已注册(保证变体参数与重写规则生效)
- if (!has_action("init", "wpcc_init")) {
- add_action("init", "wpcc_init");
- }
- if ( ! class_exists( 'WPCC_Main' ) ) {
- add_filter("query_vars", "wpcc_insert_query_vars");
- }
-
// 加载管理后台模块(仅在后台时加载)
if (is_admin()) {
require_once dirname(__FILE__) . "/includes/wpcc-admin.php";
}
+
+ // 注册基础钩子
+ add_action("wp_enqueue_scripts", "wpcc_add_global_js");
+ add_filter("query_vars", "wpcc_insert_query_vars");
+ add_action("init", "wpcc_init");
+
+ // 调试模式下的重写规则刷新
+ if (WP_DEBUG || (defined("wpcc_DEBUG") && wpcc_DEBUG == true)) {
+ add_action("init", function () {
+ global $wp_rewrite;
+ $wp_rewrite->flush_rules();
+ });
+ add_action("wp_footer", "wpcc_debug");
+ }
}
/**
@@ -161,18 +169,11 @@ function wpcc_mobile_exist($name)
*/
function get_wpcc_option($option_name, $default = false)
{
- // 使用现代化的配置管理器
- global $wpcc_main;
- if ($wpcc_main && method_exists($wpcc_main, "get_config")) {
- $config = $wpcc_main->get_config();
- if ($option_name === "wpcc_options") {
- return $config->get_all_options();
- }
- return $config->get_option($option_name, $default);
+ if (is_multisite() && wpcc_mobile_exist("network")) {
+ return get_site_option($option_name, $default);
+ } else {
+ return get_option($option_name, $default);
}
-
- // 向后兼容
- return get_option($option_name, $default);
}
/**
@@ -180,7 +181,9 @@ function get_wpcc_option($option_name, $default = false)
*/
function update_wpcc_option($option_name, $option_value)
{
- // 始终将站点级设置保存到当前站点的 options;
- // 网络级设置在网络设置模块中使用 update_site_option 专门处理。
- return update_option($option_name, $option_value);
+ if (is_multisite() && wpcc_mobile_exist("network")) {
+ return update_site_option($option_name, $option_value);
+ } else {
+ return update_option($option_name, $option_value);
+ }
}