如何从媒体库中获取图像URL

时间:2014-12-16 作者:Layka

我有一个附件id,但我需要一个url。如何从附件对象获取url?

// When an image is selected, run a callback.
frame.on( \'select\', function() {
    // Grab the selected attachment.
    var attachment = frame.state().get(\'selection\').first();
    $(\'#\' + id).val(attachment.id);
}); 
。。。

函数将其转换为toJSON。现在它工作了。

jQuery(document).ready(function($) {
var frame;

// Build the choose from library frame.
$(document).on("click", ".upload_image_button", function() {
    var id = $(this).attr(\'id\').replace(\'_b\', \'\');  

    if ( frame ) {
        frame.open();
        return;
    }

    // Create the media frame.
    frame = wp.media.frames.meta_image_frame = wp.media({
        // Tell the modal to show only images.
        library: {
            type: \'image\'
        },
    });

    // When an image is selected, run a callback.
    frame.on( \'select\', function() {
        // Grab the selected attachment.
        attachment = frame.state().get(\'selection\').first().toJSON();
        $(\'#\' + id).val(attachment.url);
    });

    frame.open();
    });
});

2 个回复
最合适的回答,由SO网友:Iftieaq 整理而成

您必须使用toJSON()将附件变量转换为JSON对象。然后,您可以查看其属性。

使用

attachment = frame.state().get(\'selection\').first().toJSON();
而不是

attachment = frame.state().get(\'selection\').first();

SO网友:Robert hue

如果您有附件id,则可以致电wp_get_attachment_url 函数获取附件的URL。

<?php wp_get_attachment_url( $id ); ?>
wp_get_attachment_url 函数接受ID。

Example usage... 对于附件id 12。

<?php echo wp_get_attachment_url( 12 ); ?>
它将输出如下内容http://example.net/wp-content/uploads/filename

结束

相关推荐

拒绝使用Media Uploader上传大小错误的图像

我正在进行一项超级严格的设置,以便在后期编辑屏幕中向自定义字段添加图像。我的最佳方案是,当用户尝试为特定自定义值上载错误大小的图像时,添加一条自定义错误消息。我知道我可以用任何自定义上传器来实现这一点,但我更喜欢用常规媒体上传器。我也知道wp_handle_upload_prefilter 我已经使用它来验证文件名,并根据一般要求生成自定义错误消息。我现在需要的是一种使用自定义需求的方法,根据上载到的字段拒绝上载。我也知道Differentiate Featured Image from Post Ima