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你会得到空。

于 2012-05-08T20:34:04.090 回答
0

您需要将$settings变量带入函数范围内。您可以通过使用参数来做到这一点:

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

或者使用依赖注入(我更喜欢),但我认为这对你和插件来说都很难。

于 2012-05-08T20:35:20.480 回答