我正在尝试创建一个用户可以用来从wordpress网站的前端发布的表单。
我在创建转发器字段时遇到了麻烦。我尝试了几种方法,但似乎没有任何工作:
$periods = $_POST['periods'];
// for each perdiod, save the start/end date and notes
for ($p = 1; $p <= $periods; $p++) {
update_sub_field( array('date', $p, 'start-date'), $_POST['p'.$p.'-start-date'] );
update_sub_field( array('date', $p, 'end-date'), $_POST['p'.$p.'-start-date'] );
update_sub_field( array('date', $p, 'notes'), $_POST['p'.$p.'-start-date'] );
} // end periods loop
和
// for each perdiod, save the start/end date and notes
for ($p = 1; $p <= $periods; $p++) {
add_post_meta($post_id, 'date_'.$p.'_start-date', $_POST['p'.$p.'-start-date']);
add_post_meta($post_id, 'date_'.$p.'_end-date', $_POST['p'.$p.'-end-date']);
add_post_meta($post_id, 'date_'.$p.'_notes', $_POST['p'.$p.'-notes']);
} // end periods loop
但这些对帖子本身没有任何作用。
转发器设置如下:
日期(转发器) - &gt;
开始日期(字段)
结束日期(字段)
notes(field)
那里还有另一个转发器区域(转发器内的转发器),但我想先让它工作!
有什么想法吗?
答案 0 :(得分:2)
要创建帖子,您需要为每个字段使用实际的字段键。您不能使用字段名称,因为尚未创建db记录。查看Elliot的文档here了解该信息。
以下是一些代码可能会执行此操作的方式:
$event_field_key = 'field_534d3f17f3ca2';
// for each perdiod, save the start/end date and notes
for ($p = 1; $p <= $periods; $p++) {
$events[] = array(
'_start-date' => $_POST['p'.$p.'-start-date'],
'_end-date' => $_POST['p'.$p.'-end-date'],
'date' => $_POST['p'.$p.'-notes']
);
} // end periods loop
update_field($event_field_key, $events, $post_id);
您必须获取该字段的字段键才能使其正常工作。为此,请转到自定义字段屏幕并在右上角查找屏幕选项。选中显示字段键的复选框。现在,您的字段键应显示在自定义字段列表中字段名称的右侧。用它来添加字段。
Here's Elliot's instructions如果我没有意义的话。