【发布时间】:2018-11-29 21:09:38
【问题描述】:
在我的模板中,我使用 acf_form 从前端创建帖子。创建的帖子是票证系统的一部分,因此它们需要一个自动生成的包含票号的 post_title。票号应与帖子 ID 相同。
要自动生成帖子标题,我使用“wp_insert_post_data”。这几乎是完美的。当我在后端创建帖子时,一切都很好,但是当我从前端创建帖子时,票证的 ID 错误。表单位于页面 id 为 38 的页面上。现在,当我从前端创建帖子时,帖子标题始终为“ticket-38”,而不是创建的帖子本身的 id。
add_filter( 'wp_insert_post_data' , 'modify_post_title' , '99', 1 );
function modify_post_title( $data )
{
if($data['post_type'] == 'tickets') {
$id = get_post_field ('ID', $data->ID);
$title = 'tickets-'.$id;
$data['post_title'] = $title ; //Updates the post title to new title.
}
return $data; // Returns the modified data.
}
我做错了什么?
【问题讨论】:
-
不带`$data->ID`试试看:
$id = get_post_field ('ID');见get_post_field -
同样的问题。它仍然从我使用 acf_form 的页面获取 id,而不是新创建的帖子本身的 id。
标签: wordpress