【问题标题】:Wordpress get_post_meta image width for lazy load用于延迟加载的 Wordpress get_post_meta 图像宽度
【发布时间】:2013-04-17 14:52:15
【问题描述】:

我正在尝试在 Wordpress 中延迟加载图像页面 - 我已经尝试了插件,但它们似乎都不起作用(我只想在某些页面上延迟加载图像。)

所以我现在正在尝试使用插件 - http://www.appelsiini.net/projects/lazyload

这个插件需要img标签中的图片宽高。

    <img data-original=“img/example.jpg” src=“img/grey.gif” width=“640” height=“480”>

我正在附加来自自定义字段的图像,例如

    <img src="<?php echo get_post_meta($post->ID, 'img1', true); ?>">

是否可以从 get_post_meta 中获取图像的宽度和高度

我查看了 wp_get_attachment_image_src 但我看不到如何使用它 get_post_meta

======

更新

======

    <?php
        $attachments = get_children( 
        array(
                    'post_parent' => $post->ID, 
            'post_status' => 'inherit', 
            'post_type' => 'attachment', 
            'post_mime_type' => 'image', 
            'order' => ASC, 
            'orderby' => 'menu_order ID'
            )
        );

    ?>

    <?php
        foreach ( $attachments as $attachment_id => $attachment ) {

            $image_attributes = wp_get_attachment_image_src( $attachment );

    ?>      
            <img src="<?php echo $image_attributes[0];?>" width="<?php echo $image_attributes[1];?>" height="<?php echo $image_attributes[2];?>">

    <?php       

        }
    ?>

【问题讨论】:

    标签: wordpress post get meta


    【解决方案1】:

    最好使用 Wordpress 媒体库支持。您可以通过以下方式获取所有附加到帖子的图片:

    <?php $attachments = get_children( 
        array('post_parent' => $id, 
            'post_status' => 'inherit', 
            'post_type' => 'attachment', 
            'post_mime_type' => 'image', 
            'order' => ASC, 
            'orderby' => 
            'menu_order ID') ); ?>
    

    其中$id 是当前帖子 ID。然后使用附加图像的 ID,您可以简单地使用:

    <?php foreach ( $attachments as $attachment_id => $attachment ) {
        (...)
    }?>
    

    遍历图像 ID,并且

    <?php wp_get_attachment_image_src($attachment_id, $size, $icon);>
    

    描述:http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src,不仅可以获取图片的url,还可以获取图片的宽度和高度。

    整个代码可以包装在一个简码函数中以便于使用;)。

    【讨论】:

    • 谢谢 Marcin,这看起来有点超出我的知识范围,但我想解决这个问题。我已经在我的帖子中添加了更新,但我什么也没得到。 - 我通常会尝试 Wordpress 支持,但通常不会得到响应。
    • 这是 100% 自定义模板或自定义插件工作。你至少需要知道一些 php 和 wordpress 的 codex。您可以在 codex 中找到所有答案,但没有关于如何将所有内容连接在一起的 php 知识 - 您将无法再做任何事情。
    • 我对自定义模板和一些 wordpress 代码感到满意,但我只是在寻找一些建议。
    • 如果您只使用自定义字段将 url 插入图像(不是 ID),则可能无法获取有关图像大小的信息(当您将图像上传到媒体库时存储在数据库中) .
    • 感谢您的帮助 Marcin,我已经用另一种方法解决了。我在自定义字段中使用图像 URL 而不是 ID。
    猜你喜欢
    • 2018-03-22
    • 1970-01-01
    • 2012-09-15
    • 2013-10-24
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多