在这里找到了对我有用的答案。我在使用自定义用户角色时对其进行了少许修改。
function published_to_pending( $post_id ) {
global $post;
if ( ! is_object( $post ) ) {
return;
}
if ( ! current_user_can( 'publish_posts' ) && $post->post_status == 'publish' ) {
// stop recursion call
remove_action( 'save_post', 'published_to_pending' );
// update the post, which calls save_post again
wp_update_post( array( 'ID' => $post_id, 'post_status' => 'pending' ) );
// re-hook this function back
add_action( 'save_post', 'published_to_pending' );
}
}
add_action( 'save_post', 'published_to_pending' );