据我所知,小部件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
( )
最合适的回答,由SO网友:Jan Fabry 整理而成
您正在使用get_field_id()
对于表单元素的name属性,但应使用get_field_name()
.
字段名称的形式如下widget-{$id_base}[{$number}][{$field_name}]
, 但身份证不能使用[]
, 所以他们就像widget-{$id_base}-{$number}-{$field_name}
.