我有一个自定义帖子,用户登录后可用于在网站上注册自己的简历。我将用户发送到“待处理”状态并尝试在管理员将状态更改为“发布”时不显示此代码,以进行设置状态发布。它可以工作,但是当管理员要更改状态后,将其发布为“待处理”即可。我该如何解决?
add_filter( 'wp_insert_post_data', 'prevent_post_change', 20, 2 );
function prevent_post_change( $data, $postarr ) {
if ( ! isset($postarr['ID']) || ! $postarr['ID'] ) return $data;
if ( $postarr['post_type'] !== 'noo_resume' )
$old = get_post($postarr['ID']);
if (
$old->post_status !== 'pending' &&
$old->post_status !== 'trash' &&
$data['post_status'] === 'publish'
) {
$data['post_status'] = 'pending';
}
return $data;
}