小部件更新代码不起作用

时间:2010-12-28 作者:Sampson

据我所知,小部件API非常直接和简单,但由于某些原因,我的更新代码没有正常生效。当我从后端按[保存]时,所有字段都被清空,实际上没有保存任何内容。

当我将小部件拖到侧栏区域时,会在数据库中为小部件创建一个条目。

1846, 0, \'widget_email-signup\', \'a:2:{i:2;a:0:{}s:12:"_multiwidget";i:1;}\', \'yes\'
当我输入值并保存时,不会保存任何值。我都截获了$new_instance$old_instance 在调用我的update方法的过程中,将它们的输出写入一个文件,但没有发现任何内容。

完整代码:http://pastebin.com/gtrfuciZ

Update Method

function update( $new_instance, $old_instance ) {
  $instance = $old_instance;

  $instance[\'title\'] = $new_instance[\'title\'];
  $instance[\'script\'] = $new_instance[\'script\'];

  file_put_contents( \'/wp_results.txt\', print_r( $old_instance, true ) );
  file_put_contents( \'/wp_results.txt\', print_r( $new_instance, true ), FILE_APPEND );

  return $instance; 
}
wp_results.txt (在更新方法中找到数据)

Array
(
    [title] => 
    [script] => 
)
Array
( )

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

您正在使用get_field_id() 对于表单元素的name属性,但应使用get_field_name().

字段名称的形式如下widget-{$id_base}[{$number}][{$field_name}], 但身份证不能使用[], 所以他们就像widget-{$id_base}-{$number}-{$field_name}.

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?