[update]<一开始我采取了一种愚蠢的方法,因此我正在完全重写我的答案Stephen Harris\' post. 结果:现在更紧凑了。
我试图将@bueltge的过滤器改编成我的代码,但没有成功。
我的解决方案使用jQuery操作字符串
在“来自计算机”选项卡中,我添加了一个每半秒运行一次的功能,以便在按钮文本出现时(上传后)更改按钮文本。
本例涉及两个CPT:“movie”和“woo\\u estate”。
/*
* Change the text "Use this Image"/"Insert into Post" on the upload window to "Insert into CPT"
*/
function wpse_26585_script_enqueuer(){
global $current_screen;
$post_id = !empty( $_GET[\'post_id\'] ) ? (int) $_GET[\'post_id\'] : 0;
$post_type = get_post_type($post_id);
if( \'media-upload\' == $current_screen->id && (\'movie\' == $post_type || \'woo_estate\' == $post_type) ) {
// VAR DECLARATION
$select = "";
if(\'movie\' == $post_type) $select = "Insert into Movie";
if(\'woo_estate\' == $post_type) $select = "Insert into Property";
// FIND CURRENT TAB
$tab = isset($_GET[\'tab\']) ? $_GET[\'tab\'] : "type";
// CHANGE NAMES IN UPLOAD MEDIA TAB and UPDATE "SAVE ALL CHANGES" LINK TO INCLUDE OUR PARAMETER IN THE QUERY
$jquery = (\'type\' == $tab) ? \'var refreshUpload = setInterval(function(){$("#media-items").each(setButtonNames);},500);\' : \'$("#media-items").each(setButtonNames);\';
//CHANGE BUTTON NAMES
echo <<<HTML
<script type="text/javascript">
function setButtonNames() {
jQuery(this).find(\'.savesend .button\').val(\'{$select}\');
}
jQuery(document).ready(function($){
{$jquery}
});
</script>
HTML;
}
}
add_action(\'admin_head\', \'wpse_26585_script_enqueuer\');