Как изменить функцию the_post_thumbnail в WordPress?

Прежде всего: это вообще возможно?

Я хотел бы получить функцию, которая возвращает srcset <img> тег, чтобы сделать мой макет WordPress отзывчивым. Это важно для меня, потому что моя обертка имеет ширину 1400, что хорошо для экранов шире, чем 1400 @ 1 или 700 @ 2, но для мобильных телефонов слишком широк, и ширину 720px будет достаточно для экранов @ 2 и даже @ 3 ( поскольку они могли бы стать более острыми, но глаз не заметил бы слишком много).

Проблема в том, что я не могу знать, какой размер миниатюры использовать при обработке php … поэтому я хотел бы использовать srcset, Для этого я знаю, что должен написать что-то на functions.php, Но что мне делать и как? Должен ли я изменить the_post_thumbnail() функционировать? Или я должен создать новый? В таком случае, как я могу получить разные имена изображений из разных размеров миниатюры сообщения?

0

Решение

Вы можете использовать WP wp_get_attachment_image_src() а также get_post_thumbnail_id() функции, чтобы создать себе <img> тег:

global $post;
$url1 = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'thumbnail' );
$url2 = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium');
<img src="<?php echo $url1[0]; ?>" srcset="<?php echo $url2[0]; ?> 500w" alt="alt-text" />

Где «thumbnail» и «medium» — это имя размера изображения. Например, размеры WordPress по умолчанию: миниатюра, средняя, ​​большая и полная. Ваша тема может иметь больше заявленных размеров.

Если вы находитесь внутри цикла, вам не нужно объявлять де global $post,

0

Другие решения

Вы можете использовать фильтр для изменения функции the_post_thumbnail.

используйте фильтр ниже, чтобы изменить вывод, сгенерированный функцией the_post_thumbnail.

           add_filter( 'post_thumbnail_html', 'your_function', 10, 6 );
0

По вопросам рекламы [email protected]