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


15

Làm cách nào tôi có thể xóa các thuộc tính chiều rộng và chiều cao khỏi post_thumbnail khi chèn bằng <?php the_post_thumbnail(); ?>?

<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/image.jpg" class="attachment-post-thumbnail wp-post-image" />

tìm kiếm tập tin Thumb.php, không chắc chắn nhưng thông thường các tập tin chứa mã hóa cứng
Niraj Chauhan

Trong trường hợp bạn đang tự hỏi, tôi muốn có thể sửa đổi chiều rộng và chiều cao bằng CSS - cụ thể hơn là đặt chiều rộng tối đa và để chiều cao tự đặt thay vì mặc định thành mã hóa cứng.
Carson

sử dụng fireorms để có được lớp hoặc ID chính xác hoặc cho tôi URL của bạn
Niraj Chauhan

2
Thay đổi bất cứ điều gì trong một tệp bên ngoài chủ đề (ví dụ: post-thumb-template.php) sẽ là một ý tưởng tồi vì mọi bản cập nhật WordPress sẽ ghi đè lên nó.
Carson

Điều gì khiến bạn nghĩ rằng bạn cần phải loại bỏ các thuộc tính để làm những gì bạn muốn?
t31os

Câu trả lời:


25

Liên quan: Bộ lọc để loại bỏ các thuộc tính kích thước hình ảnh?

Có một bộ lọc post_thumbnail_htmlnhận đối số của nó là phần tử html đầy đủ đại diện cho hình ảnh thu nhỏ của bài đăng trước khi nó xuất hiện trên trang. Bạn có thể lọc ra các kích thước với một chút regex:

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );

function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

Nó không làm việc cho tôi. add_filter ('post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3); hàm remove_thumbnail_dimensions ($ html, $ post_id, $ post_image_id) {if (wp_is_mobile ()) {$ html = preg numplace ('/ (width | height) = \ "\ d * \" \ s /', "", $ ); } trả lại $ html; }
dlopezgonzalez

5

bạn chỉ có thể lấy url của ngón tay cái và tự đặt nó vào thẻ img:

<?php
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'your_thumb_handle' );
?>
<img src="<?php echo $thumbnail['0']; ?>" />

1
Đó là giải pháp duy nhất tôi gặp phải, chỉ hy vọng có một cách để làm điều đó mà không cần một cách giải quyết.
Carson

Nhưng bạn cũng cần truy vấn các thuộc tính alt và tiêu đề
MZAweb

0
add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10 );
add_filter( 'image_send_to_editor', 'remove_thumbnail_dimensions', 10 );
add_filter( 'the_content', 'remove_thumbnail_dimensions', 10 );
function remove_thumbnail_dimensions( $html ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

điều này sẽ thực hiện công việc, "the_contnet" sẽ xóa tất cả chiều rộng và chiều cao của hình ảnh nội dung bài đăng.


Vui lòng chỉnh sửa câu trả lời của bạn và thêm một lời giải thích: tại sao điều đó có thể giải quyết vấn đề?
Fuxia
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.