您可以通过在保存帖子之前检查帖子作者是否是贡献者以及帖子状态是否为挂起来完成此操作。
保存帖子之前:
add_filter( \'wp_insert_post_data\', \'disallow_edit_pending_3748\', 99, 2 );
function disallow_edit_pending_3748( $post_data, $post_array ){
if( \'pending\' == $post_data[\'post_status\'] && current_user_can( \'contributor\' ) ){
// there\'s no other way to do this.
// Nothing can stop the post from saving and still make sense to the user, except this.
wp_redirect(add_query_arg( \'message\', 999, get_edit_post_link( $post_array[\'ID\'], \'url\' )));
exit;
}
return $post_data;
}
add\\u query\\u arg to add message=999是可选的。你可以这么做
wp_redirect(get_edit_post_link( $post_arr[\'ID\'], \'url\' ));
但是,添加该额外参数可以显示消息。我正在连接WordPress自己的消息显示。
add_filter( \'post_updated_messages\', \'add_custom_message_3748\' );
function add_custom_message_3748( $messages ){
$messages[\'post\'][999] = "No, you can\'t do this!";
return $messages;
}
问题是它总是更新(绿色)类型。您可以通过其他方式获得创意并添加管理通知。