맞춤 게시물 유형 화면에서 맞춤 분류 메타 박스 제거


15

각 해당 사용자 정의 게시물 유형에 대해 두 개의 계층 적 사용자 정의 분류법이 있습니다. 게시물 유형의 편집 화면에서 각각에 대한 메타 박스를 제거하고 싶습니다.

나는 읽고 제거 사용자 정의 분류 METABOX 양식 사용자 지정 게시 유형 과 어떻게 카테고리 스타일 (계층) 분류의 METABOX를 제거하는 방법은 무엇입니까? 하지만 여전히 붙어 있습니다.

내가 사용하는 기능은 다음과 같습니다

function remove_taxonomies_metaboxes() {
    remove_meta_box( 'partner_typediv', 'partners', 'normal' );
    remove_meta_box( 'person_typediv', 'people', 'normal' );
}
add_action( 'admin_menu' , 'remove_taxonomies_metaboxes' );

post_types와 custom_taxonomies를 접두사로 지정하지 않았습니다. Codex에서 권장 하는 admin_menu후크와 후크를 사용하려고했습니다 add_meta_boxes. 세 번째 매개 변수 normal와 두 가지 모두를 시도했습니다 side.

위의 함수는 mu-plugins게시물 유형 및 분류를 등록하는 함수 아래의 파일에 있습니다.


편집 : 그것은 register_taxonomy 함수의 오타였습니다. 나는 끔찍한 사람입니다. 도움을 주신 모든 분들께 감사드립니다. 나는 아직도 몇 가지를 배웠다!


심지어 'show_ui' => false?
— JMau

1
게시물을 편집 할 때가 아니라 메뉴의 UI를 계속 원합니다.
— mrwweb 2016 년

답변:


35

수동을 통해 사용자 정의 분류 등록하는 경우 register_taxonomy을 당신은 METABOX가 표시되는 위치를 제어하기 위해 인수를 전달할 수 있습니다.

설정 아래의 예에서 show_ui할 수 false완전히 편집 화면, 빠른 편집 화면 및 관리자 메뉴에서 METABOX를 제거합니다. 사용자가 설정하지만 만약 show_ui에 true그 사용하여 미묘한 차이 제어를 달성 할 수 있습니다 show_in_quick_edit및 meta_box_cb인수를 (원하는대로 거짓 가죽에 나중에 CPT 편집 화면에서 METABOX 설정).

register_taxonomy( 'your_custom_taxonomy', array( 'your_custom_post_type' ), $args );
$args = array(
    'show_ui'                    => true,
    'show_in_quick_edit'         => false,
    'meta_box_cb'                => false,
);

작동합니다. 관리 메뉴를 유지하고 사용자 정의 분류를 제거하여 사용자 정의 게시물 유형을 새로 추가하십시오. 감사.
— IT Vlogs

감사합니다! post-new에서 숨기려면 'meta_box_cb'=> false를 찾고 있었고 null로 설정하면 기본 wordpress 버전 만 표시됩니다.
— Ryan H

부드럽고 간단합니다.
— Travis van der Font

6

적용하려는 게시물 유형에 대해서만 분류 체계post 를 등록 할 수 있어야한다고 가정하여 게시물 유형 화면이 아닌 편집 화면 에서 상자를 제거하고 싶다고 가정 합니다. Codex의 예제는 다음 book과 같은 게시물 유형에 대해서만 샘플 분류를 등록합니다 .

register_taxonomy( 'genre', array( 'book' ), $args );

이것이 당신이해야 할 일이라고 생각하지만 게시물 유형이나 분류법에 대한 등록 코드를 게시하지 않았습니다.

메타 박스를 직접 만든 경우 (즉,이 박스가 기본 박스가 아닌 경우)이 문제를 피하는 방법 은 포스트 유형별 후크에 메타 박스를 등록하는 것입니다 .

do_action('add_meta_boxes_' . $post_type, $post);

또는 위의 예를 따르십시오.

add_action('add_meta_boxes_book', 'your-box-callback');

이러한 접근 방식 중 하나가이를 해결해야합니다. 나는 당신이 전혀 사용해야한다고 생각하지 않습니다 remove_meta_box.

메타 박스가 등록 된 포스트 유형에서 메타 박스를 제거하려고 시도하면 이것이 작동합니다 (Codex의 예에 따라).

function remove_taxonomies_metaboxes() {
    remove_meta_box( 'genrediv', 'book', 'side' );
}
add_action( 'add_meta_boxes_book' , 'remove_taxonomies_metaboxes' );

나는 그것이 admin_menu너무 일찍 확신 하지만 그것을 확인하지 못했습니다. add_metaboxes또한 나를 위해 작동합니다. 왜 그것이 당신에게 효과가 없는지 모르겠습니다.


불분명해서 죄송합니다. Post Type 화면을 의미했습니다 . 각 분류 체계는 하나의 사용자 정의 게시물 유형에만 등록됩니다. add_meta_boxes_ * 훅을 간단히 사용해 보았지만 자동 생성 메타 박스를 사용하고 있지만 그에 대한 변형을 시도해 볼 것입니다.
— mrwweb

그런 다음 대답의 마지막 옵션이해야합니다. 나는 그것을 테스트했다. 상자가 사라집니다. 나는 상자없이 분류법을 갖는 논리를 이해한다고 말할 수 없다.
— s_ha_dum

(위의 편집을 참조하십시오. 오타였습니다. 저에게 있습니다 ... 도움을 주셔서 감사합니다). 귀하의 질문에 대답하기 위해 고급 사용자 정의 필드가있는 분류법을 표시하고 있습니다 (사이트 사용자에게 더 나은 인터페이스입니다).
— mrwweb

마지막 예제는 나를 올바른 방향으로 안내했지만 이것이 나를 위해 일한 것입니다 : add_action ( 'admin_menu', 'remove_taxonomies_metaboxes');
— Marcos Buarque

이 구문이 현재 버전의 WordPress에서 작동하지 않는다는 것을 알았습니다.이 답변이 작동하는지 확인하십시오 .
— Davey

3

사용자 정의 분류법 관리에 ACF를 사용하면 기본 메타 박스가 필요하지 않습니다. 이 코드를 성공적으로 시도했습니다.

      function remove_cuttax_metaboxes() {
           $post_type = 'post';
           $taxonomy = 'custom_taxonomy_slug';
           remove_meta_box( 'tagsdiv'.$taxonomy, $post_type, 'side' );

       }
       add_action( 'admin_menu' , 'remove_cuttax_metaboxes', 100 );

낮은 우선 순위 (100)는 분류법이 CPT-UI와 같은 플러그인으로 작성되는 경우에도이 코드가 작동하도록합니다.


tagsdiv는 후행이 있어야합니다 :: remove_meta_box( 'tagsdiv-'.$taxonomy, $post_type, 'side' );
— Greg Haygood 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.