web-dev-qa-db-ja.com

プラグインが無効になったときにメッセージを表示する

要件が満たされていない場合は、次のコードを使用してWordPressプラグインを無効にします。

    public function activate() {
        if (!$this->check_requirements()) {
            deactivate_plugins(plugin_basename(__FILE__));
            wp_redirect(admin_url('plugins.php'));
            exit;
        }
    }

Activate()関数は、プラグインがアクティブ化されたときに呼び出されます。何が起こったのかを説明するメッセージをユーザーに追加したいです。それをする方法はありますか?

1
Omar Abid

実際には、もっと良い方法があります。

私のプラグインはすべてPHP 5を必要とします。最近まで、これはWordPressの要件ではなかったので、多くの人が重要なPHP機能を欠いているシステムに私のプラグインをインストールしようとしました。プラグインが動作することを確認し、そうでない場合はメッセージを表示するように、プラグインにチェックをいくつか追加しました。

しかし私はプラグインをアクティブにしています。それは機能しません。そうすれば、ユーザーが自分のサーバーを更新するためのアクションを取るか、私のプラグインを無効にするまでメッセージはそこに表示されます。

これが私がしていることの要旨です...

function _my_plugin_php_warning() {
    echo '<div id="message" class="error">';
    echo '  <p>My Plugin requires at least PHP 5.  Your system is running version ' . PHP_VERSION . ', which is not compatible!</p>';
    echo '</div>';
}

if ( version_compare( PHP_VERSION, '5.0', '<' ) ) {
    add_action('admin_notices', '_my_plugin_php_warning');
} else {
    require_once( 'lib/class.my_plugin_core_functions.php' );
}

私は自分のプラグインのメインPHPファイルにこのコードを入れました。それからサイトがロードされるたびに、私のプラグインはそのサイトが正しいバージョンのPHPを持っていることを確認し、必要なファイルの残りをロードするか(require_once()呼び出し)またはadminセクションに通知を追加します。 add_action()呼び出し).

3
EAMann