我有一个适用于我的自定义帖子类型的自定义函数。加工时save_post
action:
add_action( 'save_post', 'my_custom_function' );
我想将帖子状态设置为草稿(以防从外部 api 获取自定义数据出现问题)。
在我的my_custom_function
功能我有这个小块:
if ($error == true) {
$override_post = array();
$override_post['ID'] = $post_id;
$override_post['post_status'] = 'draft';
wp_update_post( $override_post );
}
但似乎之后save_post
正在处理中,那么post_status
正在重新设置。
任何人都有一个想法,我应该连接到哪里,所以在保存帖子数据时我可以修改它post_status
, post_date
和其他一些发布数据信息,这样它们就不会被覆盖?
你应该把它挂到wp_insert_post_data http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data。然后你可以使用这样的函数将你的帖子状态设置为草稿:
add_filter( 'wp_insert_post_data', 'set_post_to_draft', 99, 2 );
function set_post_to_draft( $data, $postarr ) {
if ( your_condition ) {
$data['post_status'] = 'draft';
}
return $data;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)