我正在尝试为图像和文本创建两个自定义字段。我在回路中有两个输入:
...
<input type="hidden" name="wt_set[\'upload_set_img\'][]" id="img" value="100" />
<input type="text" name="wt_set[\'title\'][]" value="Text One" />
<input type="hidden" name="wt_set[\'upload_set_img\'][]" id="img1" value="200" />
<input type="text" name="wt_set[\'title\'][]" value="Text Two" />
...
结果是$\\u POST[\'wt\\u set\']
array(2) {
["upload_set_img"]=>
array(2) {
[0]=>
string(3) "100"
[1]=>
string(3) "200"
}
["title"]=>
array(2) {
[0]=>
string(3) "Text One"
[1]=>
string(3) "Text Two"
}
}
然后我这样做:
foreach( $_POST[\'wt_set\'] as $name => $arr_values ){
foreach( $arr_values as $i => $value){
update_post_meta( $post_id, $name, $value );
}
}
但我只得到一个值:
["upload_set_img"]=>
array(1) {
[0]=>
string(3) "100"
}
["title"]=>
array(1) {
[0]=>
string(4) "Text One"
}
我需要
get_post_meta($post->ID,\'upload_set_img\');
和
get_post_meta($post->ID,\'title\');
相等:
["upload_set_img"]=>
array(1) {
[0]=>
string(3) "100"
[1]=>
string(3) "200"
}
["title"]=>
array(1) {
[0]=>
string(4) "Text One"
[1]=>
string(4) "Text Two"
}
如何正确使用update\\u post\\u meta来获得此结果?
最合适的回答,由SO网友:cameronjonesweb 整理而成
你不需要第二个foreach
环
foreach( $_POST[\'wt_set\'] as $name => $val ){
update_post_meta( $post_id, $name, $val );
}
你的第二个孩子怎么了
foreach
每个条目都被单独处理并设置为post meta,以便在运行时循环
update_post_meta( $post_id, $name, XXX );
然后
update_post_meta( $post_id, $name, XXX );
将覆盖上一个。