如何使用钩子定制WordPress添加媒体界面,去除不需要的元素

简介:

WordPress编写文章界面的添加媒体按钮允许用户上传多媒体文件,但并不是每个人都能用的顺手,有的人倾向于引用外部图片,所以希望“从URL上传”这一项是默认选中的,有的人喜欢从媒体库中挑选图片,如果定制一下WordPress添加媒体界面,就能称心如意了。

注:该代码只适用于<3.5的版本,3.5以上定制方法请看文章最后一节。

 

定制WordPress添加媒体界面

WordPress的好处就是提供了很多钩子函数(actions and filters),使用户不用更改核心文件就能改变很多WordPress的默认行为,媒体界面也不例外。

更改多媒体选项卡位置

多媒体选型卡通常有四项:从计算机上传、从URL上传、从相册上传(如果该文章已经有图片附件)和从媒体库选择图片。

改变它们的顺序只需要使用filter: media_upload_tabs。将下面的代码放到主题的functions.php中即可看到效果

这段代码会使“从URL”变成第一项,改变返回的数组的元素顺序,即可改变多媒体选项卡的顺序

复制代码
add_filter('media_upload_tabs', 'modify_media_tabs');
function modify_media_tabs($tabs) {
 return array(
  'type_url' => __('From URL'),
    'type' => __('From Computer'),
  'gallery' => __('Gallery'),
  'library' => __('Media Library')
 );
}
复制代码

 

设置默认选项卡

前面提到有人喜欢直接通过URL插入图片,那么就让“从URL”变成默认选中的选项卡吧,将下面代码放到主题的functions.php中查看效果

add_filter('_upload_iframe_src', 'change_default_media_tab');
function change_default_media_tab($uri) {
 return $uri.'&tab=type_url';
}

 

 

要默认选中其它选项卡,只需要更改tab后面的值:

从媒体库 – tab=library

从相册 – tab=gallery

从计算机 – tab=type

删除某个选项卡

将下面的代码放到主题的functions.php中

复制代码
add_filter('media_upload_tabs', 'remove_media_library_tab');
function remove_media_library_tab($tabs) {
    unset($tabs['library']);
    //unset($tabs['type_url']); //删除从URL
    //unset($tabs['gallery']); //删除从相册
    //unset($tabs['type']); //删除从计算机
  
    return $tabs;
}
复制代码

 

媒体库选项卡将被删除

添加自定义消息

复制代码
add_action( 'post-upload-ui', 'media_upload_infobox' );
add_action('pre-html-upload-ui','media_std_upload_infobox');
  
function media_upload_infobox() {
?>
<div style="background:#FFCC66; color:#000000; padding:10px; text-align:center">
自定义消息
</div>
  
<?php
}
  
function media_std_upload_infobox() {
?>
<div style="background:#FFCC66; color:#000000; padding:10px; text-align:center">
使用标准上传工具上传界面的自定义消息
</div>
  
<?php
}
复制代码

 

 

效果如下

添加自定义消息

WordPress 3.5.0以上版本的定制方法

3.5以上media_upload_tabs这个钩子虽然存在但已经没有任何用处,3.5以上可以用media_view_strings这个filter来修改界面。下面的代码演示如何删除Create Gallery和Set Featured Image。

复制代码
add_filter('media_view_strings', 'remove_media_library_tabs');
function remove_media_library_tabs( $strings ) {

    $strings["insertMediaTitle"] = "插入图片";
    $strings["insertIntoPost"] = "点击插入";
    $strings["addMedia"] = "添加图片";
    $strings["returnToLibrary"] = "回到已上传";
    
    $strings["mediaLibraryTitle"] = "已上传";
    
    //创建相册
    unset( $strings["createNewGallery"]);
    $strings["createGalleryTitle"] = "";

    //创建新的播放列表
    unset( $strings["createNewPlaylist"]);
    $strings["createPlaylistTitle"] = "";
    
    //创建音频播放列表
    unset( $strings["createNewPlaylist"] );
    $strings["createPlaylistTitle"] = "";
    
    //创建视频播放列表
    unset( $strings["createNewVideoPlaylist"] );
    $strings["createVideoPlaylistTitle"] = "";
    
    //特色图片
    unset( $strings["setFeaturedImageTitle"] );

    return $strings;
}
复制代码

 

可以unset的字符串变量如下

复制代码
Array
(
    [url] => URL
    [addMedia] => Add Media
    <a href="http://www.solagirl.net/?s="></a> => Search
    [select] => Select
    [cancel] => Cancel
    [selected] => %d selected
    [dragInfo] => Drag and drop to reorder images.
    [uploadFilesTitle] => Upload Files
    [uploadImagesTitle] => Upload Images
    [mediaLibraryTitle] => Media Library
    [insertMediaTitle] => Insert Media
    [createNewGallery] => Create a new gallery
    [returnToLibrary] => ← Return to library
    [allMediaItems] => All media items
    [noItemsFound] => No items found.
    [insertIntoPost] => Insert into post
    [uploadedToThisPost] => Uploaded to this post
    [warnDelete] => You are about to permanently delete this item.
  'Cancel' to stop, 'OK' to delete.
    [insertFromUrlTitle] => Insert from URL
    [setFeaturedImageTitle] => Set Featured Image
    [setFeaturedImage] => Set featured image
    [createGalleryTitle] => Create Gallery
    [editGalleryTitle] => Edit Gallery
    [cancelGalleryTitle] => ← Cancel Gallery
    [insertGallery] => Insert gallery
    [updateGallery] => Update gallery
    [addToGallery] => Add to gallery
    [addToGalleryTitle] => Add to Gallery
    [reverseOrder] => Reverse order
)
复制代码

 




本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/p/7647667.html,如需转载请自行联系原作者


相关文章
【WordPress插件】Media folder汉化版-媒体文件夹-v5.1.2
【WordPress插件】Media folder汉化版-媒体文件夹-v5.1.2
273 0
|
JavaScript PHP
解决 WordPress 升级更新后“添加媒体”按钮失效问题
最近有用户反映主题升级之后文章发布页面的“添加媒体”按钮点击没有反映,没有办法上传图片附件等问题,其实呢这个问题并非主题本身的问题,而是WordPress的js文件合并机制出了一点小状况,那么我们该怎么解决呢?
1893 0
|
存储 缓存 对象存储
将 WordPress 媒体迁移全部迁移至对象存储,降低服务器存储压力
虽然自己的 WordPress 博客很早就云化了,用了云服务器、云数据库、OSS 和 CDN,不过在 WordPress 的附件的云化其实自己一直都是沿用的老思路就是 我爱水煮鱼 大佬之前发布的七牛云插件,用镜像的方式把源站的图片在七牛进行存储再加速,这样的好处就是兼容性比较广,但是WP网站的目录随着网站的成长会越来越大。
3589 0
|
PHP Apache
wordpress无法上传超过2M的媒体
问题描述 wordpress不能上传大数据量的音频或视频文件! 解决方案 修改/etc/php.ini文件 upload_max_filesize = 128M post_max_size = 128M ...
1505 0
|
7月前
|
缓存 应用服务中间件 PHP
WordPress提速指南:Memcached+Super Static Cache+CDN缓存网站内容
本文分享三大网站提速方案:启用Memcached减少数据库压力,使用Super Static Cache生成静态页面,结合CDN实现全球加速,全面提升WordPress加载速度与用户体验。
313 1
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
313 19
|
缓存 搜索推荐 数据库
使用SiteGround搭建WordPress网站的方法
以上就是在SiteGround上搭建WordPress网站的步骤。这个过程可能需要一些时间和耐心,但只要你按照步骤操作,你就可以成功搭建自己的WordPress网站。
453 23
|
缓存 PHP 数据库
WordPress网站服务器性能优化方法,站长必备。
最后,当你将这些方法组合起来并实施时,您将发现你的WordPress网站性能有了显著的提高。别忘了,这不是一次性的任务,要定期执行,保持你的车(网站)始终在轨道上飞驰。
384 21
|
运维 网络安全 PHP
2025年面板安装 Wordpress 网站教程
本文对比了2025年国内主流服务器运维面板(宝塔、1Panel、Websoft9、AMH、旗鱼云梯)的核心特点与适用场景,并详细介绍了各面板安装WordPress的教程。内容涵盖环境配置、数据库创建及源码部署等步骤,同时提供了通用注意事项与选择建议。新手可优先考虑操作直观的宝塔面板或云端管理工具旗鱼云梯,技术爱好者和企业用户则可根据需求选择更专业或定制化的方案。
1679 2

相关实验场景

更多