• WordPress 常规设置页面调用媒体中心上传图片插入URL(新版可用)


    首先,我们需要在主题或插件文件夹中创建一个 JavaScript 文件(如:media-uploader.js),该文件中包含如下代码。

    1. /**
    2. * 媒体中心上传 js
    3. **/
    4. jQuery(document).ready(function($){
    5. var mediaUploader;
    6. $('#upload_image_button').click(function(e) {
    7. e.preventDefault();
    8. if (mediaUploader) {
    9. mediaUploader.open();
    10. return;
    11. }
    12. mediaUploader = wp.media.frames.file_frame = wp.media({
    13. title: '选择图片',
    14. button: {
    15. text: '选择图片'
    16. }, multiple: false });
    17. mediaUploader.on('select', function() {
    18. var attachment = mediaUploader.state().get('selection').first().toJSON();
    19. // 插入媒体URL到背景图像字段中
    20. $('#bzg_wechat_img').val(attachment.url);
    21. });
    22. mediaUploader.open();
    23. });
    24. });

    上面代码所做的工作很简单,当我们点击 #upload_image_button 按钮时,代码调用wordpress的媒体上传工具,用户选择图片后,插入图片网址到 #background_image 字段,作为该字段的值。创建并保存好上面的代码文件后,下一步,我们需要把这个JavaScript文件加载到页面中。

    1. //加到function
    2. add_action( 'admin_enqueue_scripts', 'custom_script_js' );
    3. function custom_script_js() {
    4. if ( ! did_action( 'wp_enqueue_media' ) ) {
    5. wp_enqueue_media();
    6. }
    7. wp_enqueue_script( 'custom-media-uploader', get_stylesheet_directory_uri() . '/js/scripts.js', array( 'jquery' ) );
    8. }

    需要注意的是,因为本示例中,我们开发的是后台页面,需要使用 admin_enqueue_scripts 钩子来加载JavaScript文件,如果是前端页面,我们需要使用 wp_enqueue_scripts 钩子。

    实现表单字段

    1. <input id=”background_image” type=”text” name=”background_image” value=<?php echo get_option(‘background_image’); ?>/>
    2. <input id=“upload_image_button” type=“button” class=“button-primary” value=“Insert Image” />

    上面代码实现的表单字段大致如下图所示,点击「Insert Image」按钮,我们就可以调起WordPress的媒体上传工具,上传或选择已经上传的图片,然后,插图该图片到前面的 URL 字段中。

    如果需要更加良好的用户体验,我们还可以简单调整一下上面的代码,比如,添加一个隐藏的字段用于保存媒体的 ID、添加一个预览字段用于显示缩略图等等。篇幅所限,就不再这里细说了,有需要的朋友可以自行实现。

  • 相关阅读:
    Speedoffice(excel)如何使用COUNTIF函数进行条件计数
    【Java】面向对象思想
    Mysql 事务和存储引擎的概念
    【Cocos creator】Cocos creator介绍和入门
    Hive 导出数据到 CSV 文件
    GreenPlum的学习心得和知识总结(二)|打造Greenplum数据库内核开发环境
    AWS SSA-C003 #21
    【奇思妙想】【节省磁盘空间】我有一些文件,我不想移动它们,但又想节省磁盘空间,该怎么做呢?
    UGUI源码解析——RawImage
    MyBatis-Plus主键生成策略[MyBatis-Plus系列] - 第491篇
  • 原文地址:https://blog.csdn.net/cnpinpai/article/details/133855835