블록 에디터 글쓴이 선택에 관리자가 보이지 않을 때

블록 에디터에서 글쓴이를 변경하려고 할 때 사용자 선택을 하려고 보면 Author(글쓴이) 역할(role)에 속한 사용자만 보이게 됩니다.

이 전 metabox 방식에서는 글을 쓸 수 있는 모든 사용자가 보였었지만, 블록 에디터 에서는 Author 만 보이도록 Core에서 지정되어 있습니다.

나중에 Core가 업데이트 되어가면서 수정될 수 있지만, 우선 이 기능이 필요한 경우 테마의 functions.php 파일에 아래내용을 추가하여 ‘publish_posts’ 권한을 가진 모든 사용자를 리스팅 할 수 있습니다.

(authors 만 호출하는 REST API Request 가 있을 수 있어 새 글 쓰기, 글 편집 화면에서 요청하는 경우만 작동하도록 했습니다)


add_filter( 'rest_user_query', function($args, $request) {
  if ( $request['context'] !== 'view' || empty( $args['who'] ) || 'authors' !== $args['who'] ) {
    return $args;
  }
  $ref = wp_get_referer();
  $allowed = [admin_url('post.php'), admin_url('post-new.php')];
  foreach ( $allowed as $i => $url ) {
    $allowed[$i] = str_replace( ['http://', 'https://'], '', $url );
  }

  $do = false;
  foreach ( $allowed as $url ) {
    if ( strpos($ref, $url) !== false ) {
      $do = true;
      break;
    }
  }

  if ( !$do )
    return $args;

  unset($args['who']);

  $args['capability'] = 'publish_posts';

  return $args;
}, 10, 2 );