휴지통으로 이동 및 게시 버튼을 제외한 게시 메타 박스의 모든 항목을 숨기는 방법


10

사용자 정의 게시물 유형 (연락처라고 함)이 있습니다. 이 게시물 유형은 게시물처럼 작동하지 않기 때문에 SAVE DRAFT, PREVIEW, Status, Visibility 또는 Publish Date를 표시하고 싶지 않습니다.

내가 표시하려는 유일한 옵션은 게시 및 휴지통으로 이동 버튼입니다.

이러한 다른 옵션을 숨길 수있는 방법이 있습니까? 그렇지 않은 경우 새 메타 박스에 추가 할 수있는 새 PUBLISH & Move to Trash를 어떻게 만드나요?

답변:


14

CSS를 사용하여 옵션을 숨길 수 있습니다. post.php 및 post-new.php 페이지의 기타 및 사소한 게시 작업에 display : none 스타일이 추가됩니다. 모든 게시물 유형이이 두 파일을 사용하므로 특정 게시물 유형도 확인합니다.

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');

Brian-빠른 답변 감사합니다. 'POST_TYPE'을 사용자 정의 게시물 유형 (연락처)의 이름으로 바꾸어 기능을 시도했지만 새 페이지 편집 / 추가로 이동하면 아무것도 제거되지 않습니다.
katemerart

최신 편집 내용을 확인하십시오. 문제를 해결해야합니다. :)
Brian Fegter

그것은 훌륭합니다-이것은 내가 표시하고 싶지 않은 것을 제거하는 완전히 새로운 방법을 열었습니다! 정말 고맙습니다.
katemerart

기꺼이 도와 드리겠습니다 :)
Brian Fegter

1
간단히 지적하면 : if ( $post->post_type != $my_post_type ){ return; }처음 에 간단히 수행하여 코드의 들여 쓰기 수준을 제거 할 수 있습니다 . if명세서 전체에 코드 전체를 넣을 필요는 없습니다 .
Pete

1

이 예제에서는 게시 옵션을 숨기려는 게시물 유형을 쉽게 설정할 수 있습니다.이 예제에서는 빌트인 포트 유형 유형 page및 사용자 정의 게시물 유형에 대해 해당 옵션을 숨 깁니다 cpt_portfolio.

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

중요 업데이트

또한 게시물을 임시 보관함에 저장하지 않도록 게시물 상태를 "게시 됨"으로 설정하는 것이 좋습니다.

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

// Hook to wp_insert_post_data
add_filter( 'wp_insert_post_data', 'wpse_36118_force_published' );
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.