我为我帮助过的一个主题设置页面做了类似的事情,它看起来与您的有点不同,但我将发布代码,以便您进行比较。
jQuery:<从字面上讲,只是从我使用的工作脚本中提取的适用部分。
jQuery(document).ready( function($) {
$(\'img.font\').click(function() {
form_field = $(this).next().next(\'input\');
tb_show(\'\', \'media-upload.php?tab=type&from=t31os&post_id=0&TB_iframe=true\');
return false;
})
.hover(function() {
$(this).css({\'cursor\':\'pointer\'});
});
window.send_to_editor = function(html) {
media_url = $(html).attr(\'href\');
tb_remove();
$(form_field).val(media_url);
}
});
在我的例子中,我有一个触发上载窗口的图像,当用户单击
Insert into settings 字段按钮(见下文)。
您会注意到,首先在媒体上传请求中传递了一个post ID,您应该需要它才能看到Insert into post 窗口中的按钮。其次,还有一个额外的请求参数from=t31os
, 这允许我有选择地更改Insert into Post 文本,像这样。。
add_filter( \'gettext\', \'change_insert_into_post\', null, 2 );
function change_insert_into_post( $translation, $original ) {
if( !isset( $_REQUEST[\'from\'] ) )
return $translation;
if( $_REQUEST[\'from\'] == \'t31os\' && $original == \'Insert into Post\' )
return \'Insert into settings field\';
return $translation;
}
希望这有帮助。
Follow-up from comments:
以下是在我的主题选项页面中工作的所提供代码的一些图像(箭头是触发上载程序的图像)。
字段。
上传器窗口。
结果。
您会注意到我没有使用gettext过滤器,这只是因为它不是代码功能的一部分(这是一种个人风格,在这里没有任何区别)。
您是否正确地将必要的脚本排入队列?惊人地media-upload
和thickbox
, 以及thickbox样式表。