Cách ẩn tất cả mọi thứ trong metabox PUBlish ngoại trừ nút Move to Trash & PUBlish


10

Tôi có một loại bài tùy chỉnh (được gọi là danh bạ). Vì loại bài đăng này không hoạt động như một bài đăng, tôi không muốn hiển thị TIẾT KIỆM, TRƯỚC, Trạng thái, Hiển thị hoặc Ngày xuất bản.

Các tùy chọn duy nhất tôi muốn hiển thị là các nút PUBlish & Move to Trash.

Có cách nào để ẩn những lựa chọn khác? Nếu không, làm cách nào để tạo PUBOUND & Move to Trash mới mà tôi có thể thêm vào một metabox mới?

Câu trả lời:


14

Bạn chỉ có thể ẩn các tùy chọn bằng CSS. Điều này sẽ thêm một màn hình: không có kiểu nào cho các hành động xuất bản linh tinh và nhỏ trên các trang post.php và post-new.php. Nó cũng kiểm tra một loại bài cụ thể vì tất cả các loại bài đều sử dụng hai tệp này.

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 - Cảm ơn đã phản hồi nhanh chóng. Tôi đã thử chức năng này, thay thế 'POST_TYPE' bằng tên của loại bài đăng tùy chỉnh (danh bạ), nhưng không có gì bị xóa khi tôi chỉnh sửa / thêm trang mới.
kHRerart

Kiểm tra chỉnh sửa mới nhất của tôi. Nó sẽ khắc phục vấn đề. :)
Brian Fegter

Điều đó thật tuyệt vời - điều này đã mở ra một cách hoàn toàn mới để loại bỏ những thứ tôi không muốn hiển thị !! Cảm ơn bạn rất nhiều.
kHRerart

Rất vui được giúp đỡ :)
Brian Fegter

1
Chỉ cần chỉ ra: bạn có thể loại bỏ một mức thụt lề cho mã của mình bằng cách thực hiện if ( $post->post_type != $my_post_type ){ return; }ngay từ đầu. Không cần phải có toàn bộ mã của bạn được gói trong ifcâu lệnh.
Pete

1

Trong ví dụ này, bạn có thể dễ dàng đặt loại bài đăng nào bạn muốn ẩn tùy chọn xuất bản, ví dụ này ẩn chúng cho loại loại nồi tích hợp pagevà loại bài tùy chỉnh 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' );

Cập nhật quan trọng

Tôi cũng sẽ đề nghị bạn buộc một trạng thái bài đăng là "Đã xuất bản" để tránh lưu bài viết dưới dạng bản nháp:

/**
 * 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' );
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.