好啊我会尽可能地解释这件事,对我直言不讳。无论如何,我正在尝试将默认媒体上传器作为插件的一部分。
目前,我已成功使用该筛选器attachment_fields_to_edit
隐藏大多数输入字段,只保留标题(&;备用文本字段,以及自定义提交按钮。单击时,此按钮将获取图像URL并将其放置到div
在父页上。
不管怎样,这就是我的问题。上传器本身的所有功能都按照我的要求运行,但目前过滤器正在将其自身应用于帖子、页面、媒体库等中的媒体上传器。我只需要其他字段&;自定义按钮显示在我的插件中,但不显示在其他地方。
我什么都试过了,但没法成功。我设法将自己的查询应用于媒体上传。php URL,这样我可以使可选字段仅显示在我的插件的thickbox“library”选项卡上,但在上载新图像时,会显示默认字段,因为Wordpress使用可选文件上载图像;异步上载。php。
以下是整个功能:http://pastebin.com/5vpecMvL
关于各种功能的一些信息:riva_slider_pro_info()
是一个返回值数组的函数。riva_slider_pro_uri( $search )
获取$\\u SERVER[\'REQUEST\\u URI\']并将其存储在变量中,搜索其$search参数并返回true或false。
在media uploader thickbox的“库”选项卡中,它正在返回true
因为我在媒体上传上传递了一个额外的查询。php URL(例如,“media upload.php?post\\u id=0$slideshow=true&;type=image&;TB\\u iframe=1”)。但是,它正在回归false
用户刚刚在同一个thickbox中上载了一个新图像后,因为它使用异步上载。改为php文件。我不知道如何将查询传递到这个URL,如果可以这样做的话。
我意识到这可能很难理解,但我已经尽力解释了。我真的在为这件事发愁,花了很长时间想弄明白。感谢您的任何意见或建议,或者理想的解决方案!提前谢谢。
最合适的回答,由SO网友:helgatheviking 整理而成
最后,我通过jquery点击事件启动了手动上传的thickbox。然后使用setInterval,我可以隐藏我想要的片段。
jQuery(文档)。就绪(函数($){
$(\'.specialclass\').click(function() {
//get post id from somewhere (for me this was the row column
string = $(this).parents(\'tr.type-portfolio\').attr(\'id\');
if(/post-(\\d+)/.exec(string)[1]) post_id = parseInt(/post-(\\d+)/.exec(string)[1], 10);
tbframe_interval = setInterval(function() {
//remove url, alignment and size fields- auto set to null, none and full respectively
$(\'#TB_iframeContent\').contents().find(\'.url\').hide().find(\'input\').val(\'\');
$(\'#TB_iframeContent\').contents().find(\'.align\').hide().find(\'input:radio\').filter(\'[value="none"]\').attr(\'checked\', true);
$(\'#TB_iframeContent\').contents().find(\'.image-size\').hide().find(\'input:radio\').filter(\'[value="full"]\').attr(\'checked\', true);
}, 2000);
if(post_id) tb_show(\'\', \'media-upload.php?post_id=\'+post_id+\'&type=image&tab=library&TB_iframe=true\'); //tab sets the opened TB window to show library by default
return false;
});
});