【发布时间】:2020-02-21 19:02:41
【问题描述】:
我正在编写我的第一个插件。它就像一个主题的插件,为它添加有用的东西。 其中之一是,我收集食物数据,这就是为什么我允许用户通过联系表格添加不同的食物。表单本身非常标准,我正在使用 save_posted_data 挂钩来创建食物帖子(作为自定义帖子类型)。
看起来像这样:
function save_posted_data( $posted_data ) {
$form_id = $contact_form->id();
if( $form_id == 1903 ) {
$args = array(
'post_type' => 'np-food',
'post_status'=>'draft',
'post_title'=>$posted_data['food-name'],
'post_content'=>$posted_data['food-desc'],
);
$post_id = wp_insert_post($args);
if(!is_wp_error($post_id)){
if( isset($posted_data['food-name']) ){
update_post_meta($post_id, 'food-name', $posted_data['food-name']);
}
// and so on
}
}
return $posted_data;
}
add_filter( 'wpcf7_posted_data', 'save_posted_data' );
我的问题是:检查表单时的部分,仅当所选表单是用户使用的表单时才应创建帖子。但这在这里不起作用,因为单击提交时,所有其他 CF 7 表单都会陷入无限循环。只有表格 1903 做一些事情(创建一个带有所需元字段的帖子)。所有其他都不起作用。
有人知道我在这里缺少什么吗?
【问题讨论】:
标签: wordpress plugins contact-form-7