add_image_size () cho các loại bài đăng cụ thể


18
set_post_thumbnail_size( 80, 80, true ); // true for all post types

Giả sử tôi có hai loại bài đăng đang chơi trên blog của mình: Bài đăng, Video và Sản phẩm. Tôi có thể muốn kích thước hình ảnh 80x80 cho bài đăng của mình, nhưng 100x100 cho video của tôi và 50x100 cho Sản phẩm của tôi. Theo hiểu biết của tôi, tôi buộc phải tạo hình thu nhỏ cho hình ảnh Bài đăng của mình ở kích thước 100x100 và 50x100. Và đối với các sản phẩm của mình, tôi buộc phải tạo các hình thu nhỏ có kích thước 80x80 và 100x100, mặc dù tôi sẽ không sử dụng chúng.

Có cách nào để tạo kích thước hình ảnh dựa trên các loại bài đăng để cuối cùng bạn không tạo ra một loạt hình ảnh bạn không định sử dụng và lãng phí tài nguyên có thể được sử dụng ở nơi khác không?


Tôi đã chạy vào cùng một nhu cầu.
MikeSchinkel

Điều gì xảy ra nếu bạn sử dụng chức năng này image_resize trong chủ đề trong các phần mà bạn cần kích thước hình ảnh đó?, Bạn cũng có thể viết một hàm tốc ký cho nhiều mục đích sử dụng tùy theo ngữ cảnh.

Có vẻ như một sự giám sát rõ ràng đối với tôi, điều này thực sự vẫn chưa được giải quyết?
Nathan Hornby

Câu trả lời:


12

Không có cách nào để căn cứ kích thước hình ảnh trên loại bài đăng, vì hình ảnh chưa được đính kèm vào bài đăng khi bạn tải chúng lên và kích thước hình ảnh trung gian được tạo (khi bạn chỉ cần thêm chúng qua "Phương tiện mới", chúng thậm chí không được đính kèm cho bất kỳ bài viết nào).

Tuy nhiên, gần đây tôi đã tạo ra hai plugin cùng nhau sẽ làm những gì bạn muốn. Hình ảnh trung gian ảo sẽ chặn việc tạo kích thước hình ảnh trung gian: chúng sẽ không được tạo trên đĩa, nhưng vẫn tồn tại trong mảng siêu dữ liệu. Điều này khiến WordPress nghĩ rằng chúng tồn tại để bạn có thể sử dụng chúng như hình ảnh bình thường. Plugin đồng hành, Resizer theo yêu cầu sẽ tạo kích thước hình ảnh bị thiếu khi chúng được yêu cầu. Lần đầu tiên hình ảnh được yêu cầu nó được tạo, tất cả các yêu cầu tiếp theo sẽ chỉ được phục vụ hình ảnh mới được tạo.

Các plugin này cần viết lại trước khi tôi đặt chúng vào thư mục plugin WordPress, nhưng chúng phải an toàn. Hoặc ít nhất có TODOý kiến ​​nơi họ không an toàn.


Tốt đẹp!
MikeSchinkel

2

Tôi đã đăng một số mã trên chủ đề khác này để đặt tạm thời với loại bài đăng khi tải lên một hình ảnh, sau đó kiểm tra giá trị của thoáng qua đó và điều chỉnh kích thước sau hình thu nhỏ cho phù hợp khi quá trình tải lên kết thúc. Nó không hoàn hảo hoặc chống đạn, nhưng nó nên thể hiện khái niệm ít nhất.


0

Tôi đã đưa ra giải pháp sau đây. Nó chỉ tạo hình ảnh cho loại bài đăng tùy chỉnh mà không tạo thêm bất kỳ hình ảnh nào. Vấn đề duy nhất là nếu bạn sử dụng plugin như các trường tùy chỉnh nâng cao, khi cố gắng kết xuất trường bộ sưu tập, nó chỉ hiển thị kích thước hình ảnh wordpress mặc định: 'hình thu nhỏ', 'trung bình', 'lớn' và bạn không thể truy cập kích thước hình ảnh bài đăng tùy chỉnh được tạo .

if ( function_exists ('add_image_size') ) {

function remove_default_img($sizes) {
    unset( $sizes['medium']);
    unset( $sizes['large']); 
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');

$type = get_post_type($_REQUEST['post_id']);
// Post_Name Image Sizes ======================================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

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.