今天我的WordPress出现了一些奇怪的问题:
我想在一个小部件中存储相同的多个值,所以我创建了如下内容:myCollection[id][myField]
作为我的管理小部件表单的输入名称。
a之后$this->get_field_name
调用和模板集成,生成以下代码:
<label for="widget-pricetable-ibsciss-widget-2-widget-pricetable-ibscisswidget[2][box[1][price]]"> … </label>
<input id="widget-pricetable-ibsciss-widget-2-widget-pricetable-ibsciss-widget[2][box[1][price]]" value="" name="widget-pricetable-ibsciss-widget[2][box[1][price]]"></input>
提交后,我从WordPress获得此实例数组:
array(4) { [
"title"]=> string(12) "Global title"
["box[0"]=> array(2) {
["title"]=> string(6) "title1"
["price"]=> string(6) "price1"
}
["box[1"]=> array(2) {
["title"]=> string(6) "title2"
["price"]=> string(6) "price2"
}
["box_title"]=> string(9) "Box title"
}
我有一个奇怪的“box[0”键,而不是一个格式良好的数组。
最合适的回答,由SO网友:lilobase 整理而成
好了,通过快速的恶意破解,我实现了我的目标:
而不是myCollection[id][myField]
我给get_field_name
\'s函数如下:collection][id][field
.
因此生成的代码变成:
name="widget-pricetable-ibsciss-widget[2][box][1][title]"
我的阵列现在看起来很完美:
array(3) {
["title"]=> string(12) "Global title"
["box"]=> array(2) {
[0]=> array(2) {
["title"]=> string(6) "title1"
["price"]=> string(6) "price1"
}
[1]=> array(2) {
["title"]=> string(6) "title2"
["price"]=> string(6) "price2"
}
}
["box_title"]=> string(9) "Box title"
}
PS:仅供参考,这是Wordpress的get\\u field\\u name方法:
function get_field_name($field_name) {
return \'widget-\' . $this->id_base . \'[\' . $this->number . \'][\' . $field_name . \']\';
}