【问题标题】:How to modify the the_post_thumbnail function on wordpress?如何修改wordpress上的the_post_thumbnail函数?
【发布时间】:2015-10-19 00:20:57
【问题描述】:

首先:这有可能吗?

我想要一个返回 srcset <img> 标记的函数,以使我的 wordpress 布局响应。这对我来说很重要,因为我的 wrapper 是 1400 宽,这对于宽于 1400 @1 或 700 @2 的屏幕来说是很好的,但是对于手机来说太宽了,720px 的宽度对于@2 甚至@3 屏幕来说已经足够了(因为它们可以变得更清晰,但眼睛不会注意到太多)。

问题是在处理 php 时我不知道要提供哪种缩略图大小...所以我想使用srcset。为此,我知道我必须在functions.php 上写一些东西。但是我应该怎么做以及怎么做?我应该修改the_post_thumbnail() 函数吗?还是我应该创建一个新的?那么,如何从不同大小的帖子缩略图中获取不同的图片名称呢?

【问题讨论】:

  • 我认为你可以添加一个post_thumbnail_html 过滤器并返回几乎任何你喜欢的东西来替换the_post_thumbnail 的输出。可能会为您提供一种干净的方式,或者至少可以搜索示例...(该过滤器通过了附件ID,然后您可以使用wp_get_attachment_image_src获取各种不同尺寸的图像src在您的srcset 中使用。)

标签: php html wordpress image srcset


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您可以使用 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 大小是缩略图、中、大和完整。您的主题可以声明更多尺寸。

    如果您在循环内,则无需声明 de global $post

    【讨论】:

    • $size 应该包含什么? 720, 720w, 720px, 720x480... ?
    • 对不起,我给你错误的代码,我已经编辑了我的答案,还包括关于尺寸参数的解释。
    • 我可以在 functions.php 文件中的单个函数中重新组合这段代码吗?
    • 是的,当然,您可以使用代码在functions.php文件上创建一个函数,并在需要时调用它
    • 我回家看看
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多