2015-10-13 3 views
0

Прежде всего: возможно ли это?Как изменить функцию the_post_thumbnail на wordpress?

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

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

+0

Я думаю, вы можете добавить фильтр 'post_thumbnail_html' и вернуть почти все, что угодно, чтобы заменить то, что выдает' the_post_thumbnail'. Можете дать вам чистый способ сделать это или, по крайней мере, что-то, чтобы искать примеры ... (Этот фильтр получает идентификатор вложения, а затем вы можете использовать 'wp_get_attachment_image_src' для получения различных размеров изображения' src' для используйте в своем 'srcset'.) –

ответ

0

Вы можете использовать сор 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" /> 

Где «Ленфильм» и «среднее» являются размерами изображений имени. Например, размеры WordPress по умолчанию являются миниатюрами, средними, большими и полными. У вашей темы могут быть объявлены больше размеров.

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

+0

что должен содержать размер $? 720, 720w, 720px, 720x480 ...? – Vandervals

+0

Извините, что я даю вам неправильный код, я отредактировал свой ответ и включил также объяснение о параметре размера. – ThemesCreator

+0

Можно ли воссоединить этот код в одной функции из файла functions.php? – Vandervals

0

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^