WordPress プラグインにバックアップと復元機能を追加する方法
WordPress を使用してプラグインを開発する場合、バックアップと復元機能は非常に重要な機能です。プラグインが表示されたときに役立ち、問題が発生した場合や Web サイトを移行する必要がある場合に、データを簡単に保存および復元できます。この記事では、WordPress プラグインにバックアップおよび復元機能を追加する方法を説明し、コード例を示します。
まず、バックアップ データを保存するデータベース テーブルを作成する必要があります。 phpMyAdmin またはその他のデータベース管理ツールを開き、新しいテーブルを作成し、名前を付けます。
CREATE TABLE `wp_plugin_backup` ( `id` mediumint(9) NOT NULL AUTO_INCREMENT, `backup_data` longtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
バックアップおよび復元操作のために、WordPress バックエンド プラグイン メニューにサブメニュー オプションを追加する必要があります。プラグインのメイン ファイルを開き、add_action
関数に次のコードを追加します。
add_action('admin_menu', 'plugin_add_menu'); function plugin_add_menu() { add_submenu_page( 'options-general.php', '插件备份还原', '插件备份还原', 'manage_options', 'plugin-backup-page', 'plugin_backup_page_callback' ); }
次に、メイン ファイルと同じディレクトリに新しい PHP ファイルを作成し、## という名前を付けます。 #plugin_backup_page.php を追加し、次のコードを追加します:
function plugin_backup_page_callback() { ?> <div class="wrap"> <h1><?php echo esc_html(get_admin_page_title()); ?></h1> <form action="<?php echo admin_url('admin-post.php'); ?>" method="post"> <input type="hidden" name="action" value="plugin_backup"> <?php wp_nonce_field('plugin_backup_action', 'plugin_backup_nonce'); ?> <input type="submit" class="button button-primary" value="备份插件数据"> </form> <br> <form action="<?php echo admin_url('admin-post.php'); ?>" method="post"> <input type="hidden" name="action" value="plugin_restore"> <?php wp_nonce_field('plugin_restore_action', 'plugin_restore_nonce'); ?> <input type="submit" class="button" value="恢复插件数据"> </form> </div> <?php }
add_action('admin_post_plugin_backup', 'plugin_backup'); function plugin_backup() { if (!current_user_can('manage_options')) { wp_die('You do not have sufficient permissions to access this page.'); } check_admin_referer('plugin_backup_action', 'plugin_backup_nonce'); global $wpdb; $table_name = $wpdb->prefix . 'plugin_backup'; $backup_data = json_encode(/* 这里根据你的插件需要备份的数据来进行获取 */); $wpdb->insert($table_name, array('backup_data' => $backup_data)); wp_redirect(admin_url('options-general.php?page=plugin-backup-page')); exit; }
add_action('admin_post_plugin_restore', 'plugin_restore'); function plugin_restore() { if (!current_user_can('manage_options')) { wp_die('You do not have sufficient permissions to access this page.'); } check_admin_referer('plugin_restore_action', 'plugin_restore_nonce'); global $wpdb; $table_name = $wpdb->prefix . 'plugin_backup'; $latest_backup = $wpdb->get_var("SELECT backup_data FROM $table_name ORDER BY id DESC LIMIT 1"); $restored_data = json_decode($latest_backup, true); /* 这里根据你的插件需要还原的数据来进行相应的操作 */ wp_redirect(admin_url('options-general.php?page=plugin-backup-page')); exit; }
$wpdb と適切なデータシリアル化メソッドを柔軟に使用して、さまざまな状況のプラグイン開発ニーズに適応できます。
以上がWordPress プラグインにバックアップおよび復元機能を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。