Làm thế nào để bạn có được kích thước hình thu nhỏ bài?


13

Tôi biết cách đặt kích thước của hình ảnh thu nhỏ bài đăng bằng Cài đặt phương tiện quản trị WP hoặc sử dụng chức năng này :

set_post_thumbnail_size( 150, 150 )

Nhưng làm thế nào để có được chiều rộng chiều cao hình ảnh đã được đặt cho kích thước hình thu nhỏ của hình ảnh?

Tôi muốn có thể làm một cái gì đó như thế này:

get_post_thumbnail_size(); // return array(150, 150)

Làm thế nào điều này sẽ được thực hiện? Có phải bằng cách sử dụng get_option(), và các phím tùy chọn sẽ cho chiều rộng và chiều cao hình thu nhỏ?

Câu trả lời:


8

Khi kích thước hình ảnh được thêm vào bởi WordPress ( add_image_size) hoặc bởi một plugin hoặc mã tùy chỉnh của riêng bạn, nó sẽ được thêm vào$_wp_additional_image_sizes toàn cầu, tôi không thể tìm thấy một chức năng tương tự để lấy dữ liệu từ toàn cầu đó, nhưng bạn chắc chắn có thể nhìn vào bên trong toàn cầu để xác định chiều rộng và chiều cao của kích thước hình ảnh đã đăng ký.

Thí dụ:

global $_wp_additional_image_sizes;
// Output width
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Output height
echo $_wp_additional_image_sizes['post_thumbnail']['height'];

Tất nhiên, chỉ cần đảm bảo tham chiếu các giá trị đó tại một điểm sau khi bạn đặt kích thước. Vì vậy, nếu ví dụ bạn đang đặt kích thước hình thu nhỏ trong khi khởi tạo, bạn sẽ cần đảm bảo làm bất cứ điều gì bạn cần sau thời điểm đó (nếu không bạn sẽ lấy lại kích thước như trước khi đặt chúng).

Mong rằng sẽ giúp.


Nó dường như post-thumbnailthay vì post_thubmnail(WP3.6)
user2019515

15

Tuy nhiên có một cách khác:

get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );

Lưu ý: thumbnaillà một trong những kích thước được đặt bên trong $_wp_additional_image_sizes. Vì vậy, cuộc gọi đến get_option()sẽ hoạt động cho mọi kích thước hình ảnh khác.


4
Đây thực sự là lựa chọn tốt nhất vì plugin có thể chạy hook của họ trên đó.
fuxia

1
Đó là lý do tại sao tôi ngạc nhiên khi nó chưa được đề cập.
Đánh dấu


1

Hãy nhớ rằng điều này global $_wp_additional_image_sizes; có thể không hoạt động như mong đợi. Ví dụ: khi sử dụng là trong plugin, nó sẽ không trả về các kích thước bổ sung mà Chủ đề đã đăng ký.


Nó sẽ nếu bạn thực hiện cuộc gọi đủ sau trong chuỗi hành động, nghĩa là. nếu chủ đề đăng ký kích thước của hành động init, cuộc gọi của bạn phải được thực hiện sau khi hành động đó xảy ra.
t31os

1

Điều duy nhất còn thiếu là ID của hình thu nhỏ:

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];

-1

Những gì bạn cần là chức năng này: wp_get_attachment_image_src

Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

Nó sẽ trả về một mảng chứa url, chiều rộng và chiều cao của tệp đính kèm.


1
Có nhưng nó mong muốn một ID cho một hình ảnh nhất định, người dùng không có ID để vượt qua, anh ta muốn tìm ra kích thước đã đăng ký theo tên, ví dụ. hình thu nhỏ (post_thumbnail).
t31os

-1

Ngoài bài viết trên:

$attachment = wp_get_attachment_image_src( $attachment_id ); // where $attachment_id is the ID of the attachment you want to get the thumbnail from

Sau đó, chỉ cần sử dụng mã tiếp theo để hiển thị url, chiều rộng và chiều cao:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
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.