Wordpress:在管理员选项页面上传图片

时间:2014-04-04 23:07:59

标签: php wordpress image forms upload

我正在开发我的第一个wordpress插件。它只需要允许用户更改自定义模板中的徽标并更改自定义模板中的颜色方案。

我已经创建了一个管理选项页面,现在想要添加一个字段以允许用户上传图像。如何将图像上传到wp-content / uploads文件夹。到目前为止,我在表格中有这个:

<td><input name="logo_image" type="file" id="logo_image" value="" /></td>

这是正确的做法吗?如果是这样,我如何将文件定向到正确的文件夹? wordpress是否有自己处理文件上传的方式?

2 个答案:

答案 0 :(得分:19)

将此代码添加到您的全局自定义选项功能中。

if(function_exists( 'wp_enqueue_media' )){
    wp_enqueue_media();
}else{
    wp_enqueue_style('thickbox');
    wp_enqueue_script('media-upload');
    wp_enqueue_script('thickbox');
}

<p><strong>Header Logo Image URL:</strong><br />
                <img class="header_logo" src="<?php echo get_option('header_logo'); ?>" height="100" width="100"/>
                <input class="header_logo_url" type="text" name="header_logo" size="60" value="<?php echo get_option('header_logo'); ?>">
                <a href="#" class="header_logo_upload">Upload</a>

</p>    


<script>
    jQuery(document).ready(function($) {
        $('.header_logo_upload').click(function(e) {
            e.preventDefault();

            var custom_uploader = wp.media({
                title: 'Custom Image',
                button: {
                    text: 'Upload Image'
                },
                multiple: false  // Set this to true to allow multiple files to be selected
            })
            .on('select', function() {
                var attachment = custom_uploader.state().get('selection').first().toJSON();
                $('.header_logo').attr('src', attachment.url);
                $('.header_logo_url').val(attachment.url);

            })
            .open();
        });
    });
</script>

More info

Media uploader in theme and plugin

enter image description here

答案 1 :(得分:1)

您可以使用wordpress的内置功能

<?php wp_handle_upload( $file, $overrides, $time ); ?>

这会自动将文件移动到上传文件夹

您可以编写自己的PHP功能。

其他详情可在此处找到 - &gt; Wordpress File Upload