Thêm tên lớp để đăng hình thu nhỏ


21

Tôi đang sử dụng hình thu nhỏ bài đăng để liên kết đến một trang.

Có thể thêm một tên lớp vào hình ảnh thu nhỏ bài đăng.

<li><a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail(); ?></a></li>

Câu trả lời:


42

Đúng - bạn có thể chuyển lớp bạn muốn sử dụng thành the_post_thumbnail()một phần của đối số thuộc tính, ví dụ:<?php the_post_thumbnail('thumbnail', array('class' => 'your-class-name')); ?>

Tham chiếu: http://codex.wordpress.org/Function_Reference/the_post_thumbnail#Styling_Post_Thumbnails


5
Nhưng điều này sẽ loại bỏ các lớp attachment-$size.
fuxia

Nhưng bạn có thể thêm lớp "tệp đính kèm- $ size my-class-name"
Simon Cooper

@SimonCooper Tôi đã làm và lớp hiện có tệp đính kèm - không có kích thước.
Zhianc

Đây thường là giải pháp xấu và không chung chung. Ngay cả tệp đính kèm mã hóa cứng - kích thước $, sẽ xóa tất cả các lần tiêm lớp có thể trong tương lai.
Hợp nhất

7

Bạn có thể lọc các lớp đó.

function alter_attr_wpse_102158($attr) {
  remove_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158');
  $attr['class'] .= ' new-class';
  return $attr;
}
add_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158'); 

Thêm bộ lọc ngay trước khi bạn gọi the_post_thumbnail. Bộ lọc sẽ tự động loại bỏ.

Đó là một chút trek để đạt được điều đó nhưng the_post_thumbnailsử get_the_post_thumbnaildụng sử dụng wp_get_attachment_imagemà áp dụng bộ lọc đó.


Có tên hàm 'alter_attr_wpse_102158' có một ý nghĩa đặc biệt chức năng này có thể được gọi myClass - myClass function ($ attr) {
Simon Cooper

Tên có phần mô tả và hậu tố tham chiếu câu hỏi này. Mặt khác, không có ý nghĩa đặc biệt. Từ bên trong một thể hiện của lớp-- giả sử một lớp plugin-- bạn có thể sử dụng array($this,'methodname')và bạn có thể sử dụng các lớp tĩnh với các bộ lọc bằng cách sử dụngarray('ClassName','methodname')
s_ha_dum


1
Tại sao bạn thêm một bộ lọc loại bỏ chính nó?
AlxVallejo

2
@AlxVallejo: Vì vậy, nó chỉ chạy một lần trong trường hợp cụ thể mà bạn muốn nó chạy.
s_ha_dum

0

Thẻ hình ảnh của bạn không có lớp bạn chỉ viết mã này <?php the_post_thumbnail(); ?>nhưng thẻ hình ảnh của bạn có lớp bạn chỉ cần viết mã này

<?php the_post_thumbnail('thumbnail', array(
'class' => 'class_name'

)); ?>
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.