我正在开发一个wordpress插件,该插件通过表单在我的网站中保存潜在客户数据。当用户提交表单时,将运行以下代码,以便添加帖子类型“lead”中的帖子。
除了tax\\u输入之外,几乎所有东西都正常工作。当我登录Wordpress并在我的网站上提交表单时,lead状态将设置为“open”。
但是,当我没有登录Wordpress admin并提交表单时(网站的访问者从未在课程之外登录),没有设置lead状态“open”。
有人知道我做错了什么吗?
// Get the id of taxonomy "lead-status" by slug
$term = get_term_by(\'slug\', \'open\', \'lead-status\' );
$term_id = $term->term_id;
$new_lead = array(
\'post_title\' => $lead_name,
\'post_content\' => $lead_message,
\'post_type\' => \'leads\',
\'post_status\' => \'publish\',
\'tax_input\' => array(\'lead-status\' => $term_id)
);
$lid = wp_insert_post($new_lead);
最合适的回答,由SO网友:Bainternet 整理而成
您可以使用wp_set_object_terms
保存帖子后,如果失败,您将获得该帖子的原因:
$new_lead = array(
\'post_title\' => $lead_name,
\'post_content\' => $lead_message,
\'post_type\' => \'leads\',
\'post_status\' => \'publish\',
);
$lid = wp_insert_post($new_lead);
$status = wp_set_object_terms($lid,$term_id,\'lead-status\');
现在,这将保存,但$status将保存失败案例中的失败原因。