将图像保存在wp_Options中-表

时间:2015-12-01 作者:Carsten Schmitt

我想在自定义设置页面中保存一幅图像。i、 这个图像应该是标志,应该打印到我生成的pdf文件中。这就是为什么我想在wp\\u选项表中存储图像(图像链接)。

我想使用默认的wordpress图像附件功能来选择/上载图像。因此,我想要用户在帖子中添加缩略图这样的可用性。

谁能帮帮我吗?

谢谢

1 个回复
最合适的回答,由SO网友:Carsten Schmitt 整理而成

过了一段时间,我发现了如何解决我的问题。

简而言之,我必须使用Javascript打开WP媒体上传程序。在我的选项中,我只保存附件ID。

这是我的代码:

HTML/PHP:

<?php 
    $options        = get_option( \'mysettings\' );
    $image_id       = esc_attr__( $options[\'image_id\']);
?>
<div id="logo"> 
<?php
    $hasImage       = false;
    $image          = wp_get_attachment_image_src( $image_id, \'medium\' );
    $image_url      = $image[0];
    if (!is_null($image_id) && $image_id !== "" && $image_id > 0) {
        $hasImage   = true;
    }
?>
    <div>
        <label for="image_url">Image</label>
        <input type="hidden" name="mysettings[image_id]" id="option_image_id" class="regular-text">
        <input id="upload_img-btn" type="button" name="upload-btn" class="button-secondary" value="Upload Image">
    </div>
    <div id="logo_container">
        <?php if ($hasImage) { ?>
        <img class="logo" src="<?php echo $image_url; ?>" />
        <?php } ?>
    </div>
    <input id="delete_img-btn" type="button" name="delete-btn" class="button-secondary" value="Remove Image" <?php if (!$hasImage) echo \'style="display: none;"\'; ?>>
</div>
和我的Javascript代码:

jQuery(document).ready(function($) {

$("#delete_img-btn").on("click", function(e) {
    e.preventDefault();

    $(\'#logo_container\').html("");
    $("#delete_img-btn").hide();
});

$(\'#upload_img-btn\').on("click", function(e) {
    e.preventDefault();
    var $el = jQuery( this );
    var optionImageFrame = wp.media({ 
        title: $el.data( \'choose\' ),
        button: {
            text: $el.data( \'update\' )
        },
        states: [
            new wp.media.controller.Library({
                title: $el.data( \'choose\' ),
                filterable: \'all\',
                // mutiple: true if you want to upload multiple files at once
                multiple: false
            })
        ]           
    });

    optionImageFrame.on(\'select\', function(e){
        // This will return the selected image from the Media Uploader, the result is an object
        var uploaded_image = optionImageFrame.state().get(\'selection\').first();
        // We convert uploaded_image to a JSON object to make accessing it easier
        // Output to the console uploaded_image
        var attachment = uploaded_image.toJSON();
        var image_url = attachment.url;
        var image_id  = attachment.id;

        $(\'#option_image_id\').val(image_id);

        $(\'#logo_container\').append(\'<img class="logo" src="\' + image_url + \'" />\');
        $("#delete_img-btn").show();
    });
    optionImageFrame.open();
});
});

相关推荐

如何为wp-admin/options.php模板中的媒体白名单_选项加值?

我想在我的多站点上设置媒体变量的默认值。如果我想在一个网站上这样做,很简单,我会在mysite上添加值。com/wp管理/选项。php到image\\u default\\u align、image\\u default\\u link\\u type和image\\u default\\u size,但我无法为这些添加网络全局值。所以我想手动编辑核心文件:/wp admin/options。php,但我不知道如何做到这一点,这个级别的php不在我的范围之内。下面是列出变量的代码,但对于这些最初不按顺序排