Прежде всего: это вообще возможно?
Я хотел бы получить функцию, которая возвращает srcset <img>
тег, чтобы сделать мой макет WordPress отзывчивым. Это важно для меня, потому что моя обертка имеет ширину 1400, что хорошо для экранов шире, чем 1400 @ 1 или 700 @ 2, но для мобильных телефонов слишком широк, и ширину 720px будет достаточно для экранов @ 2 и даже @ 3 ( поскольку они могли бы стать более острыми, но глаз не заметил бы слишком много).
Проблема в том, что я не могу знать, какой размер миниатюры использовать при обработке php … поэтому я хотел бы использовать srcset
, Для этого я знаю, что должен написать что-то на functions.php
, Но что мне делать и как? Должен ли я изменить the_post_thumbnail()
функционировать? Или я должен создать новый? В таком случае, как я могу получить разные имена изображений из разных размеров миниатюры сообщения?
Вы можете использовать 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
,
Вы можете использовать фильтр для изменения функции the_post_thumbnail.
используйте фильтр ниже, чтобы изменить вывод, сгенерированный функцией the_post_thumbnail.
add_filter( 'post_thumbnail_html', 'your_function', 10, 6 );