commit
This commit is contained in:
99
friend-links-manager.php
Normal file
99
friend-links-manager.php
Normal file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
/*
|
||||
Plugin Name: 友情链接管理器
|
||||
Description: 管理并展示友情链接,支持导入导出
|
||||
Version: 1.1.1
|
||||
Author: 林海草原
|
||||
Author URI: https://lhcy.org
|
||||
Text Domain: friend-links-manager
|
||||
*/
|
||||
|
||||
defined('ABSPATH') or die('无权访问');
|
||||
|
||||
// 定义插件常量
|
||||
define('FLM_VERSION', '1.0');
|
||||
define('FLM_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||
define('FLM_PLUGIN_URL', plugin_dir_url(__FILE__));
|
||||
|
||||
// 创建数据库表
|
||||
register_activation_hook(__FILE__, 'flm_create_table');
|
||||
function flm_create_table() {
|
||||
global $wpdb;
|
||||
$table_name = $wpdb->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')
|
||||
));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user