質問: プラグインのアンインストール、有効化、無効化:一般的な機能と使い方 私はワードプレスのプラグインを作っています。アンインストール機能に含めるべき典型的なものは何ですか?たとえば、インストール機能で作成したテーブルを削除する必要がありますか?オプションエントリをクリーンアップしますか?他に何か?
回答: 現在のシステムでphp versionやインストールされている拡張機能などの必要な機能をテストするには、次のようなものを使用できます。<?php # -*- coding: utf-8 -*- /** * plugin name: t5 check plugin requirements * description: test for php version and installed extensions * plugin uri: * version: 2013.03.31 * author: thomas scholz * author uri: http://toscho.de * licence: mit * license uri: http://opensource.org/licenses/mit */ /* * don't start on every page, the plugin page is enough. */ if ( ! empty ( $globals['pagenow'] ) && 'plugins.php' === $globals['pagenow'] ) add_action( 'admin_notices', 't5_check_admin_notices', 0 ); /** * test current system for the features the plugin needs. * * @return array errors or empty array */ function t5_check_plugin_requirements() { $php_min_version = '5.4'; // see http://www.php.net/manual/en/extensions.alphabetical.php $extensions = array ( 'iconv', 'mbstring', 'id3' ); $errors = array (); $php_current_version = phpversion(); if ( version_compare( $php_min_version, $php_current_version, '>' ) ) $errors[] = "your server is running php version $php_current_version but this plugin requires at least php $php_min_version. please run an upgrade."; foreach ( $extensions as $extension ) if ( ! extension_loaded( $extension ) ) $errors[] = "please install the extension $extension to run this plugin."; return $errors; } /** * call t5_check_plugin_requirements() and deactivate this plugin if there are error. * * @wp-hook admin_notices * @return void */ function t5_check_admin_notices() { $errors = t5_check_plugin_requirements(); if ( empty ( $errors ) ) return; // suppress "plugin activated" notice. unset( $_get['activate'] ); // this plugin's name $name = get_file_data( __file__, array ( 'plugin name' ), 'plugin' ); printf( '<div class="error"><p>%1$s</p> <p><i>%2$s</i> has been deactivated.</p></div>', join( '</p><p>', $errors ), $name[0] ); deactivate_plugins( plugin_basename( __file__ ) ); } php 5.5のチェックを付けてテストします。