如何在我的插件中使用wordpress上传文件/图像代码

vic*_*ick 8 wordpress

我正在开发一个wordpress插件,我需要一个可以上传图像的字段.由于wordpress有一个非常方便的上传器,如果我可以使用它会很棒.

有谁知道这是否可能?

谢谢

2nd*_*boy 14

如果您只想上传文件,则不需要媒体上传器.您只需要一个简单的表格即可.

要调用媒体上传器,您需要这样的链接:

<a onclick="return false;" title="Upload image" class="thickbox" id="add_image" href="media-upload.php?type=image&amp;TB_iframe=true&amp;width=640&amp;height=105">Upload Image</a>
Run Code Online (Sandbox Code Playgroud)

您可能需要将您的URL附加到media-upload.php才能使其正常工作.


小智 5

您可以使用此代码使用Wordpress默认媒体文件上传器,并只需在jquery中检索图像的链接

<label for="upload_image">
    <input id="upload_image" type="text" size="36" name="ad_image" value="http://" /> 
    <input id="upload_image_button" class="button" type="button" value="Upload Image" />
    <br />Enter a URL or upload an image
</label>

<?php
add_action('admin_enqueue_scripts', 'my_admin_scripts');

function my_admin_scripts() {
    if (isset($_GET['page']) && $_GET['page'] == 'my_plugin_page') {
        wp_enqueue_media();
        wp_register_script('my-admin-js', WP_PLUGIN_URL.'/my-plugin/my-admin.js', array('jquery'));
        wp_enqueue_script('my-admin-js');
    }
}

?>

<script>
    jQuery(document).ready(function($){


    var custom_uploader;


    $('#upload_image_button').click(function(e) {

        e.preventDefault();

        //If the uploader object has already been created, reopen the dialog
        if (custom_uploader) {
            custom_uploader.open();
            return;
        }

        //Extend the wp.media object
        custom_uploader = wp.media.frames.file_frame = wp.media({
            title: 'Choose Image',
            button: {
                text: 'Choose Image'
            },
            multiple: true
        });

        //When a file is selected, grab the URL and set it as the text field's value
        custom_uploader.on('select', function() {
            console.log(custom_uploader.state().get('selection').toJSON());
            attachment = custom_uploader.state().get('selection').first().toJSON();
            $('#upload_image').val(attachment.url);
        });

        //Open the uploader dialog
        custom_uploader.open();

    });


});
    </script>
Run Code Online (Sandbox Code Playgroud)