Следующий код автоматически изменит сообщения, сделанные автором, на личные.
function change_author_posts_to_private( $post_status ) {
// if the user is just saving a draft, we want to keep it a draft
if ( $post_status == 'draft' )
return $post_status;
$this_user = new WP_User( $_POST[ 'post_author' ] );
// this is assuming the user has just one role, which is standard
if ( $this_user->roles[0] == 'author' )
return 'private';
else
return $post_status;
}
add_filter( 'status_save_pre', 'change_author_posts_to_private' );
он фильтрует статус при сохранении записи, проверяет, кто автор из переменных записи, выбирает их первую роль и проверяет, является ли автор автором, если он есть, то возвращает «личное»в противном случае он возвращает естественный статус.Нет необходимости использовать категории, чтобы сделать это, когда вы можете сделать это прямо здесь.