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


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_uitrue그 사용하여 미묘한 차이 제어를 달성 할 수 있습니다 show_in_quick_editmeta_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.