2026年11月12日

2026年11月12日

WordPress 메타박스가 표시되지 않을 때 해결 방법

이 글은 일본어 원문을 현지화한 버전입니다. 일본어 원문 보기

들어가며

플러그인으로 추가한 메타박스가 글 편집 화면에 표시되지 않는다, 전에는 보이던 메타박스가 갑자기 사라졌다, 블록 편집기로 전환했더니 사이드바의 메타박스가 나오지 않는다. 메타박스가 보이지 않는 데에는 화면 설정과 블록 편집기와의 호환성이 관련되어 있습니다.

증상·원인

메타박스가 표시되지 않는 주된 원인:

  • 화면 옵션에서 숨김: 사용자별 표시 설정이 "숨김"으로 되어 있다
  • 블록 편집기와의 비호환: __block_editor_compatible_meta_box 설정이 필요하다
  • 훅 우선순위 문제: add_meta_boxes 훅의 타이밍이 맞지 않는다
  • 글 유형 지정 실수: 세 번째 인수의 글 유형이 잘못되어 있다
  • 플러그인 충돌: 다른 플러그인이 메타박스를 삭제하고 있다

해결 절차

1단계: 화면 옵션 확인하기

가장 많은 원인은 화면 옵션에서의 숨김 설정입니다.

1. 글 편집 화면 오른쪽 위의 "화면 옵션(Screen Options)"을 클릭

2. 표시하려는 메타박스의 체크가 해제되어 있지 않은지 확인

3. 체크를 하고 닫으면 표시됩니다

2단계: add_meta_box 구현 확인하기

// functions.php — 메타박스를 올바르게 추가하기
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',       // ID(고유한 문자열)
        '사용자 정의 정보',           // 제목
        'render_my_meta_box',   // 콜백 함수
        ['post', 'page'],       // 글 유형(배열로 여러 개 지정 가능)
        'normal',               // 컨텍스트: normal/side/advanced
        'high'                  // 우선순위: high/core/default/low
    );
});

function render_my_meta_box($post) {
    wp_nonce_field('my_meta_nonce_action', 'my_meta_nonce');
    $value = get_post_meta($post->ID, '_my_field', true);
    echo '<input type="text" name="my_field" value="' . esc_attr($value) . '">';
}

3단계: 블록 편집기에서 메타박스 표시하기

블록 편집기(Gutenberg)에서는 메타박스 지원이 제한됩니다.

// 블록 편집기에서도 메타박스를 표시하기
add_action('add_meta_boxes', function() {
    add_meta_box(
        'my_meta_box_id',
        '사용자 정의 정보',
        'render_my_meta_box',
        'post',
        'normal',
        'high',
        // 블록 편집기 호환을 명시
        ['__block_editor_compatible_meta_box' => true]
    );
});

4단계: 블록 편집기를 비활성화하고 확인하기

// functions.php — 특정 글 유형에서 블록 편집기를 비활성화
add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
    if ($post_type === 'post') {
        return false;  // 클래식 편집기로 전환
    }
    return $use_block_editor;
}, 10, 2);

또는 "Classic Editor" 플러그인을 설치하고 관리자 화면에서 설정하는 방법도 있습니다.

5단계: 메타박스 표시 디버깅하기

// 메타박스가 등록되어 있는지 확인
add_action('add_meta_boxes', function() {
    global $wp_meta_boxes;
    error_log('Meta boxes: ' . print_r(array_keys($wp_meta_boxes), true));
}, 999);  // 우선순위 999로 마지막에 실행

6단계: 플러그인 충돌 확인하기

# WP-CLI로 모든 플러그인을 비활성화하고 메타박스 확인
wp plugin deactivate --all
# 브라우저에서 글 편집 화면을 열어 메타박스가 나오는지 확인
# 문제가 없으면 플러그인을 하나씩 활성화하여 원인 특정
wp plugin activate plugin-name

7단계: 사용자 메타 초기화하기

화면 옵션 설정은 사용자 메타에 저장되어 있습니다.

// 특정 사용자의 메타박스 표시 설정 초기화
delete_user_meta(get_current_user_id(), 'metaboxhidden_post');
delete_user_meta(get_current_user_id(), 'metaboxhidden_page');

주의 사항

  • 화면 옵션 설정은 사용자별로 저장됩니다. 다른 사용자는 각자 설정해야 합니다.
  • 블록 편집기에서는 side 컨텍스트의 메타박스만 사이드바에 표시됩니다.
  • ACF(Advanced Custom Fields)를 사용하는 경우 블록 편집기에 대응하는 필드 그룹 설정이 필요합니다.

정리

메타박스가 표시되지 않을 때는 먼저 "화면 옵션"의 체크를 확인하세요. 블록 편집기에서는 __block_editor_compatible_meta_box 설정이 필요합니다. 그래도 해결되지 않으면 플러그인 충돌을 분리해서 확인합니다. 관련 글: 사용자 정의 필드가 저장되지 않을 때, 블록 편집기가 충돌할 때

WordPress에 대해 궁금한 점이 있으신가요? 이 사이트의 운영사는 일본에 있으며 일본어로 답변합니다. 문의하기(일본어)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲