自定义插件中的“添加媒体”按钮


12

我正在编写一个自定义插件,我想添加“添加媒体”按钮。

我只需要上传媒体,而不是从上传的文件中检索任何内容/数据。

如何添加此按钮?

谢谢

Answers:


21

如果要将添加媒体按钮添加到管理面板:

您需要使用wp_enqueue_media();

add_action ( 'admin_enqueue_scripts', function () {
    if (is_admin ())
        wp_enqueue_media ();
} );

然后使用这个js:

jQuery(document).ready(function() {
    var $ = jQuery;
    if ($('.set_custom_images').length > 0) {
        if ( typeof wp !== 'undefined' && wp.media && wp.media.editor) {
            $('.set_custom_images').on('click', function(e) {
                e.preventDefault();
                var button = $(this);
                var id = button.prev();
                wp.media.editor.send.attachment = function(props, attachment) {
                    id.val(attachment.id);
                };
                wp.media.editor.open(button);
                return false;
            });
        }
    }
});

使用此html:

<p>
    <input type="number" value="" class="regular-text process_custom_images" id="process_custom_images" name="" max="" min="1" step="1">
    <button class="set_custom_images button">Set Image ID</button>
</p>

1
完善!我只想将“ $”替换为“ jQuery”,一切都会按预期进行!谢谢。
利宾2014年

is_admin()使用钩子时不需要admin_enqueue_scripts。另外,我还会用来检查您是否在正确的页面上get_current_screen()
比约恩

对于像我一样可能还需要图像URL的任何人,可以使用以下命令:var attachmentURL = wp.media.attachment(attachment.id).get("url");。我把它放进了function(props, attachment)
seveninstl

2

显示缩略图预览而不是数字

就像一个调整一样,我这样做了...

将输入的数字更改为隐藏。

添加:

$imgid =(isset( $instance[ 'imgid' ] )) ? $instance[ 'imgid' ] : "";
$img    = wp_get_attachment_image_src($imgid, 'thumbnail');

然后...在隐藏字段上方。

if($img != "") {
?>
  <img src="<?= $img[0]; ?>" width="80px" /><br />
<?php 
}

这将使缩略图在用户端可见而不是数字:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.