如何修改wordpress上的the_post_thumbnail函数?

时间:2015-10-13 08:03:03

标签: php html wordpress image srcset

首先:它甚至可能吗?

我想获得一个返回srcset <img>标记的函数,以使我的wordpress布局响应。这对我来说很重要,因为我的包装宽度为1400宽,适用于宽度超过1400 @ 1或700 @ 2的屏幕,但对于手机太宽,720px宽度足以用于@ 2甚至@ 3屏幕(因为他们可以变得更敏锐,但眼睛不会注意太多。)

问题是我无法知道在处理php时要使用哪个缩略图大小...所以我想使用srcset。要做到这一点,我知道我必须在functions.php上写一些东西。但是我该怎么做以及如何做?我应该修改the_post_thumbnail()功能吗?或者我应该创建一个新的?在这种情况下,如何从后缩略图的不同大小中获取不同的图像名称?

2 个答案:

答案 0 :(得分: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" />

其中&#34;缩略图&#34;和&#34;媒体&#34;是图像尺寸名称。例如,默认的WordPress大小是缩略图,中等,大和完整。您的主题可以声明更多尺寸。

如果你在循环中,你不需要声明de global $post

答案 1 :(得分:0)

您可以使用过滤器修改_post_thumbnail函数。

使用以下过滤器修改the_post_thumbnail函数生成的输出。

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