Xóa Hộp Meta Ảnh nổi bật


7

Làm cách nào để xóa hộp meta Ảnh nổi bật? Tôi đã thử sử dụng remove_meta_boxchức năng và chỉ định ID hộp nhưng có vẻ như nó không hoạt động như các hộp meta gốc khác.

Đây là mã cụ thể tôi đã thử:

add_action( 'admin_menu', 'remove_thumbnail_box' );

function remove_thumbnail_box() {
    remove_meta_box( 'postimagediv', 'post', 'side' );
}

Câu trả lời:


19

Tôi đã không có thời gian để kiểm tra điều này nhưng có vẻ như nó sẽ phù hợp với bạn.

add_action('do_meta_boxes', 'remove_thumbnail_box');

function remove_thumbnail_box() {
    remove_meta_box( 'postimagediv','post','side' );
}

Kiểm tra điều này để biết thêm .

Chỉnh sửa: Thay đổi chính ở đây là bạn cần đính kèm hàm vào do_meta_boxes thay vì admin_menu


1
LƯU Ý: Bạn cũng có thể kiểm tra loại bài đăng bằng cách xem biến được truyền cho cuộc gọi lại của bạn (nếu bạn muốn thực hiện thay đổi này để đặt loại), tất nhiên hãy nhớ thêm var đến vào hàm, nghĩa là. function remove_thumbnail_box( $post_type )
t31os

4

Hình thu nhỏ của bài đăng được thêm vào một loại bài đăng như một thứ mà loại bài đăng này hỗ trợ . Nếu bạn muốn xóa chức năng thu nhỏ bài đăng từ một loại bài đăng, bạn có thể gọi remove_post_type_support(). Các bài đăng thông thường cũng được định nghĩa là các loại bài đăng tùy chỉnh, vì vậy nó cũng hoạt động với chúng.

add_action( 'init', 'wpse4936_init', 100 /* Something high, to make sure all post types are registered */ );
function wpse4936_init()
{
    remove_post_type_support( 'post', 'thumbnail' );
    // Or remove it for all registerd types
    foreach ( get_post_types() as $post_type ) {
        remove_post_type_support( $post_type, 'thumbnail' );
    }
}

Cảm ơn Jan. Bạn có thể giải thích add_action( 'init', 'wpse4936_init', 100 ); function wpse4936_init() {tất cả những gì về? Tôi chưa bao giờ thấy bất cứ điều gì như thế này.
matt

Ngoài ra, tôi không thực sự cố gắng loại bỏ hỗ trợ của nó, tôi phải cố gắng loại bỏ hộp meta (vì vậy tôi có thể thêm nó vào sau trong hộp meta tùy chỉnh hiện có. Tôi có lẽ nên chỉ định nhưng tôi đã cố gắng giữ nó đơn giản.
matt

@matt: Nếu bạn chỉ muốn loại bỏ metaboxes thì đây không phải là điều bạn muốn. Tham số thứ ba của add_action()định nghĩa mức độ ưu tiên: mặc định là 10, vì vậy nếu bạn chỉ định 100 thì nó sẽ chạy sau tất cả các mức ưu tiên thấp hơn. Bạn làm điều này để đảm bảo tất cả các loại bài đăng tùy chỉnh được tạo (chúng thường nằm trong inithook), cũng như các loại từ các plugin khác.
Jan Fabry

@Jan, tôi thực sự đã nhận thức được cái gì init100đó là cái wpse4936_initmà tôi chưa từng thấy trước đây. Đó là gì?
matt

3
Chỉ muốn làm một ghi chú remove_post_type_support( $post_type, 'post-thumbnail' );không làm việc cho tôi. Có vẻ như nó hoạt động khi được viết như thế này:remove_post_type_support( $post_type, 'thumbnail' );
RachieVee

0
add_action('do_meta_boxes', 'remove_thumbnail_box');
function remove_thumbnail_box($post_type) {
    remove_meta_box( 'postimagediv', 'post.php', 'side' );
}

Wordpress dường như chỉ vô hiệu hóa các hình ảnh đặc trưng khi gọi hành động do_meta_boxes cũng sử dụng "post.php" làm loại bài đăng thay vì "bài đăng", tôi không biết tại sao điều này lại mâu thuẫn với tài liệu. Cảnh báo do_meta_boxes dường như kích hoạt trước khi hàm wp_get_cản_user () trở nên khả dụng để bạn không thể vô hiệu hóa dựa trên loại người dùng, tất cả hoặc không có gì. Có lẽ ai đó biết về một công việc xung quanh.


Bạn cũng có thể vui lòng giải thích mã như thế nào nó giúp? Mã mà không giải thích là khó hiểu và giải thích mã được ưa thích.
bravokeyl
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.