0

Wordpressプラグインを作成するときに、ちょっとした問題が発生しました。プラグインはクラスベースであり、問​​題foreachは関数内の呼び出しにあるようです。呼び出しはforeach配列を反復処理し、オプションapiを使用してWordpressにオプションを追加します。これを正しく機能させるための助けをいただければ幸いです。

アレイ

$settings = array();
$settings['version'] = '0.1';
$settings['release'] = 'development';
$settings['license_accepted'] = 'false';

関数

public function settings($action) {
        $supported_actions = array('install', 'update', 'uninstall');
        if (in_array($action, $supported_actions) == true) {
            foreach($settings as $setting => $value) {
                $current = 'plugin_'.$setting;
                if ($action == 'install') {
                    add_option($current, $value, null, true);
                }
                if ($action == 'update') {
                    update_option($current, $value, null, true);
                }
                if ($action == 'uninstall') {
                    delete_option($current);
                }
            }
        } else {
            return false;
        }
}

問題

警告:foreachに無効な引数が指定されました。

4

2 に答える 2

0

$settings配列はどこで宣言されていますか?ほとんどの場合、範囲外です。

var_dump($settings);前に行うforeachと、nullになります。

于 2012-05-08T20:34:04.090 に答える
0

$settings変数を関数スコープ内に持ってくる必要があります。これは、引数を使用して行うことができます。

$settings = array(...);
$pluginClass->settings($action, $settings);

または、依存性注入を使用します(私は好みます)が、それはあなたとプラグインにとって難しいと思います。

于 2012-05-08T20:35:20.480 に答える