是否正确使用ADD_SETINGS_FIELD?

时间:2010-09-09 作者:Mild Fuzz

我正在使用add\\u settings\\u field向设置菜单添加更多详细信息,但不确定如何保存设置,或在主题中调用它们。

以下是迄今为止的代码

add_action(\'admin_init\',\'vimeo_setup\');

function vimeo_setup(){
add_settings_field(\'vimeo_id\',\'Vimeo ID\',\'display_vimeo\',\'general\');
}

function display_vimeo(){

 echo \'<input  type="text" name="vimeo_id" id="vimeo_id" value="" size="30" style="width:85%" />\';
 echo \'<p><small> Enter your Vimeo ID here.</small></p>\';
}

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

文件add_settings_field() 说明如下:

You MUST register any options 此函数用于register_setting() 或者它们不会自动保存和更新。

SO网友:t31os

需要注意的是,为了添加设置字段,必须将该字段注册到已注册的节中。。

因此,这必须与您自己注册的部分一起使用,或者作为一个字段添加到现有部分(例如选项页面中的部分)。

看见http://codex.wordpress.org/Function_Reference/add_settings_section

我甚至可以说,在构建插件选项页面或类似页面(主题选项)时,这些都不是很好,因为每个注册的节和字段都必须提供回调(想象一下,如果有3-4个节,所有节都有5-6个字段,那么需要多少回调)。当然,您可以通过传递参数来进行动态回调(因此您只需要一个节回调,一个字段回调)。。。(您还需要确保打印这些节/字段的nonce)。。

就我个人而言,我觉得最好只注册您的选项/设置,打印出您自己的节/字段,然后调用一个nonce来覆盖您的所有设置。。

// 1: Reference, 2: Option name, 3: Callback function to sanitize the data
register_setting( \'reference_name\', \'option_name\', \'example_callback\' );
然后,无论您在何处打印各种选项字段,您只需打印一个涵盖该批次的临时字段。。

settings_fields( \'reference_name\' ); 
如果您注册了不同的节和字段,那么您还必须为每个注册的节执行此操作。

do_settings_sections(\'your_section\');
实际上,设置自定义选项的唯一重要方面是确保在注册设置并适当清理该数据时定义自己的回调(register\\u设置的第三个参数)。

结束

相关推荐

WP-ADMIN似乎正在重定向

我的w-admin登录有一个奇怪的问题。这是从我升级到3.0以后才开始的,当我转到wp admin时,登录表单显示正常,但当我输入用户名并通过时,每次都会再次显示登录表单。使用密码恢复功能会导致电子邮件未找到错误。我知道用户名密码和电子邮件是正确的,b/c我可以访问mysql数据库,我可以看到值(至少用户名和电子邮件) 有人知道会出什么问题吗