当前位置: 首页 > 知识库问答 >
问题:

WordPress

夹谷成龙
2023-03-14

我试图在我的wordpress主题中实现响应图像。有一些插件可用,但我尝试的那些插件弄乱了我的布局。

我基本上想做的是用响应图像替换所有现有图像(不仅仅是特色图像或缩略图),或者使用srcset或srcset

我的wordpress主题创建以下图像大小:

add_image_size( "maximal", "1900" );
add_image_size( "desktop", "1405" );
add_image_size( "tablet", "981" );
add_image_size( "smalltablet", "768" );
add_image_size( "mobile", "479" );

我曾尝试用preg_replace函数替换img标签,但我从未成功捕获所有图像,我不确定这是否是最好的方法。我的一些图片有类,一些没有。

最后,我想替换这样一个简单的图像:

<img src="<destination"> id="<id>" class="<class">

通过这样的方式:

<picture>
<source srcset="<img src for mobile" media="(max-width: 500px)">
<source srcset="<img src for small tablets" media="(min-width: 700px)">
<source srcset="<img src for tablets" media="(min-width: 950px)">
<source srcset="<img src for desktop" media="(min-width: 1200px)">
<source srcset="<img src for big screens" media="(min-width: 1600px)">
</picture>

srcset等效也可以。

谢谢洛朗

共有2个答案

华旭
2023-03-14

Picturefill现已集成到Wordpress中,您可以通过以下方式检索图像源和源集:

wp_get_attachment_image_url( get_post_thumbnail_id( [PUT POST ID HERE]), 'medium' );

获取图像源集:

wp_get_attachment_image_srcset( get_post_thumbnail_id([PUT POST ID HERE] ), 'medium' );

这样容易多了!

谢谢Laurent

端木宏盛
2023-03-14

我认为过滤器post_thumbnail_html会做到这一点,代码应该是这样的...

add_filter('post_thumbnail_html', 'picturefill_html', 99, 5);
function picturefill_html(){
    $id = get_post_thumbnail_id(); // get attachment id
    $src_small = wp_get_attachment_image_src($id, 'smalltablet'); // your new image size url
    $src_large = wp_get_attachment_image_src($id, 'maximal'); // your another new image size url
    $class = $attr['class'];

    $html = '
    <picture>
        <source srcset="'.$src_small[0].'" media="(max-width: 500px)">
        <source srcset="'.$src_large[0].'" media="(min-width: 1200px)">
    </picture>
    ';

    return $html;
}
 类似资料:
  • 问题内容: 几天前,我发布了一个有关如何在我正在开发的自定义Wordpress模板中滚动到“单个帖子 ”的问题。我需要的是在单击特定链接时将单个帖子加载到定义的DIV中,然后向下滚动到包含新加载内容的DIV。考虑到Wordpress或任何其他CMS的动态内容性质,该链接的URL不能是绝对的。 不幸的是,那时没有任何具体的答案,所以我决定稍作观察。由于主要问题是动态加载内容,因此我决定放大如何在Wo

  • 问题内容: 我浏览了旧的问题,并尝试了许多似乎可以做到的不同方法。我最接近的工作是在这里:如何在自定义WP_QueryAjax上实现分页 我已经尝试了一切,但没有用。页面上没有任何变化。如果您检查并单击“加载更多按钮”,则jQuery会执行“加载更多按钮”操作,因为它从更改为,即使对我来说,这似乎也不对。它并没有添加帖子,我想我缺少一些简单的东西,但是我一生都无法解决。 我的模板文件中的代码是:

  • 问题内容: 几周前,我从共享主机迁移到了VPS,并且遇到了WordPress这些烦人的权限问题。您知道可以从管理面板下载和升级插件(和wordpress本身),但是自从我将其移动后,它开始询问我的FTP凭据,这在我不得不更新约20个插件时有点慢。 我认为这应该是某种权利问题。我查看了共享的托管wordpress文件,它们都属于用户名和组kovshenin(kovshenin:kovshenin),

  • 问题内容: 如何在我的WordPress插件中包含CSS和jQuery? 问题答案: 对于样式 然后使用:无论您要加载CSS的位置。 脚本如上所述,但是更快的加载jquery的方法就是使用init加载的init加载要加载的页面: 当然,除非您想将Google存储库用于jquery。 您还可以有条件地加载脚本所依赖的jquery库: 2017年9月更新 我刚才写了这个答案。我应该澄清,使脚本和样式排

  • 本文向大家介绍Linux XAMPP下启用WordPress的自定义文件名(伪静态)功能,包括了Linux XAMPP下启用WordPress的自定义文件名(伪静态)功能的使用技巧和注意事项,需要的朋友参考一下 Linux XAMPP下启用WordPress的自定义文件名(伪静态)功能 在安装好WORDPRESS后,想启用伪静态的功能,一个是为了好看,另外也是为了更好的SEO,按照大家的配置方式,

  • 本文向大家介绍详解WordPress中用于合成数组的wp_parse_args()函数,包括了详解WordPress中用于合成数组的wp_parse_args()函数的使用技巧和注意事项,需要的朋友参考一下 wp_parse_args() 函数是 WordPress 核心经常用到的函数,它的用途很多,但最主要用来给一个数组参数(args)绑定默认值。 因为 wp_parse_args() 函数返回

  • 本文向大家介绍WordPress中用于更新伪静态规则的PHP代码实例讲解,包括了WordPress中用于更新伪静态规则的PHP代码实例讲解的使用技巧和注意事项,需要的朋友参考一下 flush_rewrite_rules() 函数用来删除然后根据现有的条件重写伪静态规则,也就是刷新一次伪静态规则了。 先来说一下,通常在主题或者插件添加新的自定义文章类型的时候调用,防止新的自定义文章类型的文章出现 4

  • 本文向大家介绍使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决,包括了使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决的使用技巧和注意事项,需要的朋友参考一下 无聊做了个www.jiazhuangma.com,技术不过关写不好后台,就想直接读wordpress里的数据。做ajax读后台数据时在网上随便搜了一段代码使用wor