Làm cách nào để vô hiệu hóa việc tạo kích thước hình ảnh mặc định cho một số loại bài tùy chỉnh?


12

Tôi đã sử dụng loại bài đăng tùy chỉnh, trong đó không yêu cầu 'hình thu nhỏ', 'trung bình' và 'lớn'. Tôi cần phải tắt kích thước này và tạo chức năng hoặc plugin, nơi tôi có thể đặt, kích thước hình ảnh nào là bắt buộc cho mỗi loại bài đăng tùy chỉnh.

Bước đầu tiên của tôi là nối hàm get_inter liền_image_sizes từ wp-gộp / media.php. Tôi đã thêm mã này vào hàm.php nhưng nó không hoạt động :(

add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
    global $_wp_additional_image_sizes;
    //$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
    $image_sizes = array();
    if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
        $image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}   

CẬP NHẬT : Chỉnh sửa dòng này trong media.php đang hoạt động. Các loại mặc định sau khi thay đổi không tạo ra.

$image_sizes = array('thumbnail', 'medium', 'large');

Nhưng làm thế nào để làm việc móc của tôi?


1
cũng muốn có một câu trả lời cho điều này
urok93

2
Đó không phải là cách bạn sử dụng bộ lọc đó. Để xóa kích thước mặc định, bạn chỉ cần thêm nó với mức ưu tiên rất thấp và trả về một mảng trống. Tuy nhiên, điều đó sẽ không giải quyết vấn đề của bạn, bởi vì điều đó sẽ ảnh hưởng đến tất cả các loại bài đăng. Tôi không nghĩ có cách nào để làm những gì bạn muốn trong phiên bản WP hiện tại. Hãy thử yêu cầu các nhà phát triển WP để thêm $attachment_idđối số vào bộ lọc bên trong chức năng này . Bằng cách đó bạn có thể kiểm tra loại bài đăng trong hook của mình
onetrickpony

Bước của tôi chỉ là thử nghiệm chứ không phải giải pháp đầy đủ. Làm thế nào tôi có thể sử dụng bộ lọc chính xác? PS Cảm ơn bạn đã liên kết ..
Bohdan Hdal

Bất kỳ thay đổi đối với WP mà làm cho nó có thể bây giờ?
Lái xe

Không thay đổi. Vẫn là vấn đề tương tự.
Bohdan Hdal

Câu trả lời:


7

Tôi nghĩ rằng giải pháp duy nhất bạn có vào lúc này là vô hiệu hóa tất cả các kích thước hình ảnh trung gian:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );

Và sau đó tự tạo chúng, tùy thuộc vào loại bài đăng, bằng cách móc vào 'wp_generate_attachment_metadata', nơi bạn có quyền truy cập vào id tệp đính kèm (và do đó là bài đăng gốc của nó):

function do_your_stuff( $data, $attachment_id ) {
  // generate intermediate images

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );

Các tham số 10 & 2 bạn truyền vào add_filter cuối cùng là gì?
Lu-ca

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.