添加_设置_字段()是否将回调参数化?

时间:2011-05-19 作者:Georges Oates Larsen

我正在尝试创建一个相当大和广泛的设置页面,其中包含各种类型非常相似的选项。

由于将有大约20个不同的字段,其中大多数字段之间的区别只是它们的ID,因此我希望避免为每个字段创建单独的回调。

是否可以使用每个字段的设置ID的变量进行回调?这样,一个回调可以为相同类型的各种设置字段提供服务器。

我尝试将$args参数用于add\\u setitngs\\u feild(),但遗憾的是,它不起作用。例如:

add_settings_field(\'name\', \'Field Name\', array($this, \'fieldCallback\'), \'SettingsGrouP\', \'SettingsSection\', array("settingID!")); 


function fieldCallback($id)
{
    echo "<input id=\'" . $id . "\'/>";//etc, etc
}
正在调用fieldCallback si,但输入的ID为空。

4 个回复
最合适的回答,由SO网友:Rarst 整理而成

最后一个可选项$args 可以传递给的参数add_settings_fields() 传递给回调。因此,您似乎可以很好地使用相同的回调。

希望我是对的,因为我两分钟前因为聊天中的讨论才偶然发现这一点。:)

PS仔细查看了代码,它确实是相对较新的,在2.9个参数未被传递之前。

SO网友:kaciak

在最后一个(可选)参数中$args 在里面add_settings_field() 您可以使用的功能array(\'label_for\' => \'something\') 如文档中所述(参见http://codex.wordpress.org/Function_Reference/add_settings_field).

因此,如果您想传递字段的id,请使用“label\\u for”来传递:)

SO网友:Jacer Omri

Wordpress将参数传递给回调函数的方式有点棘手,回调函数接收整个$args 数组作为参数,因此您可能希望更改函数,如下所示:

function fieldCallback(array $args)
{
    echo "<input id=\'" . $args[0] . "\'/>";//etc, etc
}
然后你离开add_settings_field 事实就是这样。

SO网友:Lost 101

add_settings_field(
    \'name\', 
    \'Field Name\', 
    array($this, \'fieldCallback\'), 
    \'SettingsGrouP\', 
    \'SettingsSection\',
    $args=array("settingID!")
); 

function fieldCallback($id) {
   `echo "<input id=\'" . $id[0] . "\'/>";`
}

Jacer Omri举例说明的内容

结束

相关推荐

Wp_Options中的临时RSS提要没有自动删除吗?

我刚刚注意到55000个条目(!)在我的wp\\U选项表中。我有一阵子没去那里了。所以我跑了:delete from `wp_options` where `option_name` like \'_transient_timeout_rss%\' delete from `wp_options` where `option_name` like \'_transient_rss_%\' 还有。。。现在返回到645个条目。。。既然transient似乎是永恒的,我怎么能自动删除这些旧的R