prefix . 'friend_links'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, url varchar(255) NOT NULL, icon varchar(255) DEFAULT '', sort_order int(11) DEFAULT 0, PRIMARY KEY (id) ) $charset_collate;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); // 初始化插件版本 update_option('flm_version', FLM_VERSION); } // 动态卸载逻辑(替代 register_uninstall_hook) register_deactivation_hook(__FILE__, 'flm_cleanup'); function flm_cleanup() { global $wpdb; // 删除数据库表 $table_name = $wpdb->prefix . 'friend_links'; if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name) { $wpdb->query("DROP TABLE IF EXISTS $table_name"); } // 清理插件选项 delete_option('flm_version'); // 强制刷新缓存(针对某些缓存插件) wp_cache_flush(); } // 加载插件功能文件 require_once FLM_PLUGIN_DIR . 'includes/admin-page.php'; require_once FLM_PLUGIN_DIR . 'includes/shortcode.php'; // 加载样式和脚本 add_action('wp_enqueue_scripts', 'flm_enqueue_scripts'); function flm_enqueue_scripts() { wp_enqueue_style( 'flm-style', FLM_PLUGIN_URL . 'assets/css/style.css', array(), FLM_VERSION ); } // 后台脚本和样式 add_action('admin_enqueue_scripts', 'flm_admin_enqueue_scripts'); function flm_admin_enqueue_scripts($hook) { if ('toplevel_page_friend-links-manager' === $hook) { wp_enqueue_style( 'flm-admin-style', FLM_PLUGIN_URL . 'assets/css/style.css', array(), FLM_VERSION ); wp_enqueue_script( 'flm-admin-js', FLM_PLUGIN_URL . 'assets/js/admin.js', array('jquery', 'jquery-ui-sortable'), FLM_VERSION, true ); wp_localize_script('flm-admin-js', 'flm_vars', array( 'ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('flm_nonce') )); } }