在Add Post Metabox中自定义WordPress Media Upload和New Media Manager菜单

时间:2013-01-21 作者:ayublin

我在metabox中使用Wordpress Media Upload(<;3.5)和Media Manager(>=3.5)作为上载字段,并且需要自定义菜单,以便它们只具有上载和媒体库功能,而不具有“从URL”/“从URL插入”和“创建库”。所以我需要移除它们。

我无法使用中提到的Wordpress筛选器this solution, 因为我在metabox中使用它,它存在于Wordpress的新帖子页面中,该页面已经具有“添加媒体”功能,如果我使用这样的过滤器,它将被破坏。

是否有任何通过Javascript或任何其他方法的解决方案?

提前谢谢。

1 个回复
SO网友:Jon Masterson

我发现以下方法效果最好。。。在编辑器页面(metabox链接)中单击“添加特色图像”时,“媒体管理器”中缺少“插入帖子”选项和您提到的所有选项。这对我来说太完美了,因为我想删除用户在帖子中插入图像的选项。如果这是您想要的,请将此代码放在主题的函数中。php文件。。。

/**
* Removes "image edit" option from Media Manager.
*/
add_action( \'admin_footer-post-new.php\', \'wpse_76214_script\' );
add_action( \'admin_footer-post.php\', \'wpse_76214_script\' );
function wpse_76214_script() {
?>
<script type="text/javascript">
jQuery(document).ready( function($) {
    $( \'li.attachment\' ).live( \'click\', function( event ) {
        $( \'.media-sidebar a.edit-attachment\' ).remove(); // remove edit image link
    });
} );
</script>
<?php
}

/**
* Removes "Add Media" Button from the editor.
*/
function z_remove_media_controls() {
remove_action( \'media_buttons\', \'media_buttons\' );
}
add_action(\'admin_head\',\'z_remove_media_controls\');

/**
* Takes over the "Featured Image" meta box and allows you to change its options.
*/
add_action(\'do_meta_boxes\', \'change_image_box\');
function change_image_box()
{
remove_meta_box( \'postimagediv\', \'post\', \'side\' );
remove_meta_box( \'postimagediv\', \'page\', \'side\' );
// if you have other post types, remove the meta box from them as well
// remove_meta_box( \'postimagediv\', \'YOUR-POST-TYPE-HERE\', \'side\' );
add_meta_box(\'postimagediv\', __(\'Add Images\'), \'post_thumbnail_meta_box\', \'post\', \'side\' );
add_meta_box(\'postimagediv\', __(\'Add Images\'), \'post_thumbnail_meta_box\', \'page\', \'side\' );
// if you have other post types, add the new meta box for them as well
// add_meta_box(\'postimagediv\', __(\'Add Images\'), \'post_thumbnail_meta_box\', \'YOUR-POST-TYPE-HERE\', \'side\' );
}

/**
* Renames Feature Image Link that appears inside meta box.
*/
add_action(\'admin_head-post-new.php\',change_thumbnail_html);
add_action(\'admin_head-post.php\',change_thumbnail_html);
function change_thumbnail_html( $content ) {
  add_filter(\'admin_post_thumbnail_html\',do_thumb);
}
function do_thumb($content){
 return str_replace(__(\'Set featured image\'), __(\'Add Images and Set Featured\'),$content);
}
用户现在只能通过单击元框中的链接来添加图像,元框现在名为“添加图像”此外,元框内的链接已更改,以避免混淆。希望这有帮助!

结束

相关推荐

从管理中的特定页面模板中删除Metabox

当用户在管理中编辑特定页面时,我想通过编程删除一些元框。页面本身使用的是一个模板(tpl about.php)。我知道我可以使用此功能从所有页面中删除所有元框:function remove_post_meta_boxes() { if(!current_user_can(\'administrator\')) { remove_meta_box(\'tagsdiv-post_tag\', \'post\', \'normal\'); remove_meta_box(\'