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

从wp_get_attachment_image删除src

乐正宜人
2023-03-14

我正在尝试加载正在使用以下代码检索的图像:

<?php $args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'orderby'=> 'menu_order',
'order'=>'ASC', 
'post_parent' => $post->ID,
);
$images = get_posts( $args );
foreach($images as $image):
echo wp_get_attachment_image($image->ID, 'large');
endforeach;
?>

为了使用懒惰加载器,我需要添加一个data-src属性到img,我使用以下代码完成了:

function alter_att_attributes_wpse_102079($attr) {
$attr['data-original'] = $attr['src'];
return $attr;
}
add_filter( 'wp_get_attachment_image_attributes',
'alter_att_attributes_wpse_102079');

然而,这工作得很好,即使图像不在视口中,它们仍然被加载,这是因为我相信图像上仍然有src标签。

有没有办法删除src或用原始数据替换它?

共有1个答案

池麒
2023-03-14

您可以改用wp\u get\u attachment\u image\u src。它返回图像数据而不回显图像数据,使构建标记更容易。

应该是这样的:

foreach($images as $image):
    $img = wp_get_attachment_image_src($image->ID, 'large');
    echo '<img src="" data-original="'.$img[0].'" width="'.$img[1].'" height="'.$img[2].'" >';
endforeach;

希望有帮助!

 类似资料:
  • 我有两个具有一个任意关系的表 类ServiceProvider{ ... @OneTomany(Fetch=FetchType.Eager,MappedBy=“ServiceProvider”,Cascade={CascadeType.All,CascadeType.Remove},OlphanRemove=true)@OnDelete(action=OnDeleteAction.Cascade)

  • 问题内容: 我正在寻找一种删除表1中记录的表,其中记录与表2中的“ stn”和“ jaar”匹配。表2中“ jaar”列的内容在上一阶段/查询中的格式为 年(基准)AS’jaar’ 抱歉,找不到我找到该“解决方案”的网站。 问题答案: 您可以使用以下方法实现此目的:

  • 用于从不存在的VM中删除磁盘的所有在线说明都与旧的Azure UI有关,该UI不包含与新门户相同的菜单命令。因此,我需要使用新的Azure管理门户删除孤立磁盘的说明。旧门户的说明对此操作毫无价值。

  • 问题内容: 范围:两个表。创建新的顾客时,他们会将有关他们的一些信息存储到第二张表中(这也使用触发器完成,它可以按预期工作)。这是我的表结构和关系的示例。 表1-> 顾客 表2-> patron_info 管理员可以管理顾客。当他们选择移走顾客时,将顾客从 桌子1 移开。此时, 表2 没有任何反应。 我只是想创建一个触发器,以便在表1的项目已删除时从表2中删除。这是我尝试过的… 最初,我尝试删除触

  • 我正在使用gradle构建一个Spring Boot应用程序,我希望从war中删除文件,因为该文件将从外部加载(它运行在tomcat容器中,而不是嵌入式的)。 我查看了StackOverflow和Gradle文档,试图找出该做什么,但我不知道该绑定到哪个阶段,以及在创建war之前还是之后排除该文件。处理文件似乎也有多种方法。 我相信Maven使用作为等价物。

  • 我正在用C#WPF做一个项目,它包含在一个客户机管理中,在那里我添加了新的客户机,在一个txt文档中有save,我有一个listview,在那里我可以看到所有添加的客户机,但现在我想实现一个delete按钮,在那里我从listview中选择一个客户机,并可以删除它。如果我现在做的正确,如果有人能帮我…,…谢谢。