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

首先,我们需要在主题或插件文件夹中创建一个 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.niftyadmin.cn/n/5096785.html

相关文章

全流量安全分析发现内部系统外联异常

内部系统外连监控的重要性在于保护企业的信息安全和预防数据泄露&#xff0c;以下是几个重要的理由&#xff1a; 1、检测异常活动&#xff1a;通过监控内部系统的外连连接&#xff0c;可以及时发现是否有未经授权或异常的链接尝试。这可能表示存在恶意软件、黑客攻击或内部员工…

oracle实验四

创建文件 &#xff08;1&#xff09;为 ORCL 数据库创建一个名为 BOOKTBS1 的永久性表空间&#xff0c;数据文件为’d:\bt01.dbf’ &#xff0c;大小为100M&#xff0c;区采用自动扩展方式&#xff08;即自动分配&#xff09;&#xff0c; 段采用自动管理方式&#xff1b; &am…

Kylin麒麟操作系统(基于Linux)下的环境变量配置,重启生效

对于Kylin麒麟操作系统&#xff08;基于Linux&#xff09;下的环境变量配置&#xff0c;重启生效&#xff0c; 可以按照下面的步骤进行设置&#xff1a; 步骤 1&#xff1a;编辑/etc/profile文件 打开终端&#xff0c;以超级用户权限运行以下命令&#xff0c;使用vim编辑/etc/…

云帆在线学习考试系统介绍

随着网络技术的不断发展&#xff0c;越来越多的人开始意识到在线学习和考试的重要性。在这个数字化时代&#xff0c;借助互联网平台&#xff0c;人们可以轻松地获取各种知识和技能&#xff0c;提升自己的竞争力。而云帆在线学习考试系统正是在这样的背景下应运而生的。云帆在线…

Java时间处理---Java8中时区相关类库介绍

前言 在Java8以前&#xff0c;我们对于时区的处理通常是为时间转换类设置指定TimeZone&#xff0c;然后进行时区时间转换。 而在Java8中不仅对时间日期进行了细粒度处理&#xff0c;有无时区&#xff0c;时区处理也进行了更加细粒度的优化。 在之前我们介绍的新类库中基本都…

数字孪生技术在智慧城市应用的推进建议

&#xff08;一&#xff09;坚持需求牵引&#xff0c;强场景重实效 必须始终坚持以人为本、场景导向、需求牵引&#xff0c;站在供给侧结构性改革的角度&#xff0c;突出以用促建&#xff0c;强调建用并重&#xff0c;真正发挥数字孪生城市应用建设的实效。从构建数字孪生创新…

EVT/DVT/PVT/MP是指在制造行业一个产品

EVT/DVT/PVT/MP是指在制造行业一个产品研发导入从试产到量产的不同阶段&#xff1a; EVT&#xff1a;Engineering Verification Test工程验证测试阶段 DVT&#xff1a;Design Verification Test设计验证测试 PVT&#xff1a;Production Verification Test 小批量生产验证测试…

老卫带你学---leetcode刷题(39. 组合总和)

39. 组合总和 问题&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个…