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

news/2024/12/23 4:22:27/

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

/*** 媒体中心上传 js
**/
jQuery(document).ready(function($){var mediaUploader;$('#upload_image_button').click(function(e) {e.preventDefault();if (mediaUploader) {mediaUploader.open();return;}mediaUploader = wp.media.frames.file_frame = wp.media({title: '选择图片',button: {text: '选择图片'}, multiple: false });mediaUploader.on('select', function() {var attachment = mediaUploader.state().get('selection').first().toJSON();// 插入媒体URL到背景图像字段中$('#bzg_wechat_img').val(attachment.url);});mediaUploader.open();});
});

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

//加到function里
add_action( 'admin_enqueue_scripts', 'custom_script_js' );
function custom_script_js() {if ( ! did_action( 'wp_enqueue_media' ) ) {wp_enqueue_media();}wp_enqueue_script( 'custom-media-uploader', get_stylesheet_directory_uri() . '/js/scripts.js', array( 'jquery' ) );
}

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

实现表单字段

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

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

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


http://www.ppmy.cn/news/1156776.html

相关文章

go.mod 文件的作用

go.mod 是 Go 语言项目中的模块文件&#xff0c;用于管理项目的依赖关系和版本信息。 在 Go 1.11 版本之后&#xff0c;Go 引入了模块化开发的概念&#xff0c;通过 go.mod 文件来管理项目的模块和依赖。使用模块可以更好地管理和版本控制项目的依赖关系&#xff0c;确保项目的…

Redis数据序列化器

Redis序列化 Redis 数据序列化器用于将数据在存储到 Redis 中时进行序列化&#xff08;编码&#xff09;和反序列化&#xff08;解码&#xff09;。 RedisTemplate的两种序列化实践方案&#xff1a; 方案一&#xff1a; 自定义RedisTemplate 修改RedisTemplate的序列化器为…

Python学习六

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

解决安装nvm以后windows cmd无法找到npm/yarn命令的问题

安装了nodejs多版本管理工具nvm以后&#xff0c;会出现windows cmd无法找到npm/yarn命令的问题 只要一运行npm/yarn就会提示&#xff1a;不是内部命令&#xff0c;找不到运行路径之类的。 解决办法&#xff1a;首先打开windows环境变量的配置&#xff0c;查看NVM_SYMLINK指向…

word 如何编写4x4矩阵

百度上给的教程&#xff0c;打印出来没有对齐 https://jingyan.baidu.com/article/6b182309995f8dba58e159fc.html 百度上的方式试了一下&#xff0c;不会对齐。导致公式看起来很奇怪。 下面方式会自动对齐 摸索了一下发现可以用下面这种方式编写 4x4 矩阵。先创建一个 3x3…

VM设置共享文件夹方法

sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 主要是设置完了需要执行上面这个命令 主机与VMware虚拟机共享文件夹&#xff1a;解决虚拟机找不到共享文件夹问题 - 知乎

VBA之正则表达式(43)-- 从网页中提取指定数据

实例需求&#xff1a;由网页中提取下图中颜色标记部分内容&#xff0c;网页中其他部分与此三行格式相同。 方法1 Sub Demo()Dim objRegex As ObjectDim inputString As StringDim objMatches As ObjectDim objMatch As ObjectSet objRegex CreateObject("VBScript.RegEx…

element 表单自定义效验规则

效验规则js let matching (value, callback, reg, message) > {if (value "" || value undefined || value null) {callback(new Error(message));} else {if (!reg.test(value)) {callback(new Error(message));} else {callback();}} }; module.exports {…