Cor*_*ory 10 media wordpress jquery file-upload wordpress-theming
我正在使用自定义设置页面构建WordPress主题.某些设置要求用户上传/添加一组图像(超过1个).媒体上传器的默认行为是上传和/或选择单个图像并将其插入帖子中.
我遵循了这个关于利用媒体上传器的优秀指南,它表明我应该能够将多个设置为true,但它仍然只允许上传或选择单个文件.
这是我的代码:
加载所需的脚本,因为这是一个自定义设置页面:
if(function_exists( 'wp_enqueue_media' )){
wp_enqueue_media();
}else{
wp_enqueue_style('thickbox');
wp_enqueue_script('media-upload');
wp_enqueue_script('thickbox');
}
Run Code Online (Sandbox Code Playgroud)
Javascript/jQuery用于显示媒体上传器并处理所选图像:
var tgm_media_frame;
$('.upload-images').click(function() {
if ( tgm_media_frame ) {
tgm_media_frame.open();
return;
}
tgm_media_frame = wp.media.frames.tgm_media_frame = wp.media({
multiple: true,
library: {
type: 'image'
},
});
tgm_media_frame.on('select', function(){
var selection = tgm_media_frame.state().get('selection');
selection.map( function( attachment ) {
attachment = attachment.toJSON();
console.log(attachment);
// Do something with attachment.id and/or attachment.url here
});
});
tgm_media_frame.open();
});
Run Code Online (Sandbox Code Playgroud)
有没有人能够让多个文件选择正常工作?我错过了什么吗?谢谢!
Dmi*_*nov 13
你只需要换multiple:true
到multiple:'add'
.这是默认创建库的工作方式.
Sac*_*tte 12
更新
我认为媒体上传者自提问和回答后已经更新.我猜在以前版本的wordpress multiple: 'add'
选项不存在其他用户的建议.我不太确定.
你的代码一切都很好.只是一小部分失踪.
selection.map( function( attachment ) {
attachment = attachment.toJSON();
$("#something").after("<img src=" +attachment.url+">");
});
Run Code Online (Sandbox Code Playgroud)
经过attachment
转换toJSON
,你可以使用它作为文件中提到.您可以将图像URL放入发布到服务器的某些隐藏字段中,并将所选图像同时显示给用户.
只是一件小事我觉得很奇怪,我们需要按 ctrl+ click来选择图像.它应该是复选框或其他东西.
更新
ctrl+ click或shift+ click用于选择多个图像是wordpress给出的方式.仔细看看,打开
...\WP-包括\ JS \媒体views.js
有一个功能定义 - toggleSelectionHandler
.它监听用户按下的键组合,并因此调用其他改变某些类并导致实际选择的功能.
检查完firbug后,你可以看到两个类被应用 -
selected
details
details
class定义当前单击/活动选择的样式(带有蓝色粗边框),selected
实际上将图像标记为选中并将其返回到选择数组中.
您可以从该文件本身更改该行为,也可以编写自己的函数来处理选择.第一种方法虽然不好.
PS:Wordpress实际上并没有使用上面的文件.它选择相同文件的压缩版本.因此,您可能希望加载未压缩的文件并进行播放.您可以通过设置强制wordpress使用未压缩的js文件
define('SCRIPT_DEBUG', true);
Run Code Online (Sandbox Code Playgroud)
在wp-config.php
.这将跳过load-scripts.php
(通过合并它们将每个js文件的压缩版本加载到单个文件中)的行为.
归档时间: |
|
查看次数: |
6077 次 |
最近记录: |