黄聪:如何使用钩子定制WordPress添加媒体界面,去除不需要的元素
原文:http://www.solagirl.net/customize-wordpress-media-upload-ui.html
WordPress编写文章界面的添加媒体按钮允许用户上传多媒体文件,但并不是每个人都能用的顺手,有的人倾向于引用外部图片,所以希望“从URL上传”这一项是默认选中的,有的人喜欢从媒体库中挑选图片,如果定制一下WordPress添加媒体界面,就能称心如意了。
注:该代码只适用于<3.5的版本,3.5以上定制方法请看文章最后一节。
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
)
参考资料:remove other tabs in new wordpress media gallery
黄聪:如何使用钩子定制WordPress添加媒体界面,去除不需要的元素的更多相关文章
- [转]WordPress“添加媒体”文件时只显示上传到当前文章的附件图片
使用WordPress的朋友应该都清楚,特别是喜欢图文并茂的网站,肯定离不开的就是WordPress文章编辑页面的“添加媒体”按钮,每次点击就能弹出一个插入多媒体的界面,然后页面默认就会列举加载所有最 ...
- 黄聪:主机宝安装wordpress注意事项
1.web环境安装PHP使用5.4.21-nts-03版本 2.web环境安装Mysql使用5.5.45版本 3.创建好站点后,给站点的public_html目录添加IIS_xxx用户最高权限,添加N ...
- 黄聪:定制化WordPress后台自定义仪表盘
WordPress作为一博客管理系统,相对来说已经相当简洁了,对用户也十分友好,新手也极易上手. 仪表盘是我们登陆WordPress后看到的后台界面,映入眼帘的是各种各样的信息,如WordPress ...
- 黄聪:《跟黄聪学WordPress插件开发》
续<跟黄聪学WordPress主题开发>之后,又一个作品完成!<跟黄聪学Wordpress插件开发>,国内最好的Wordpress插件开发视频教程!! 目录预览: WordPr ...
- 黄聪:《跟黄聪学WordPress主题开发》
又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库 ...
- 黄聪:wordpress教程
又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...
- 黄聪:如何使用CodeSmith批量生成代码(转:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html)
先看看CodeSmith的工作原理: 简单的说:CodeSmith首先会去数据库获取数据库的结构,如各个表的名称,表的字段,表间的关系等等,之后再根据用户自定义好的模板文件,用数据库结构中的关键字替代 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block 开发人员经常编写需要安全功能的应用程序.这些应用程序 ...
随机推荐
- MySQL中的修改表操作
一.增加表的列 语法:alter table 表名 add( 增加列定义 ); 实例: #增加列 alter table text add( text_num ) ...
- 回文树&后缀自动机&后缀数组
KMP,扩展KMP和Manacher就不写了,感觉没多大意思. 之前感觉后缀自动机简直可以解决一切,所以不怎么写后缀数组. 马拉车主要是通过对称中心解决问题,有的时候要通过回文串的边界解决问题 ...
- 20165313 《Java程序设计》第五周学习总结
教材学习总结 下面是我认为的重点,不足之处还请谅解: 1内部类:在一个类中定义另一个类:外嵌类:包含内部类的类. 2内部类的类体中不能声明类变量和类方法:外嵌类的类体中可以用内部类声明对象. 3非内部 ...
- 学习笔记TF013:卷积、跨度、边界填充、卷积核
卷积运算,两个输入张量(输入数据和卷积核)进行卷积,输出代表来自每个输入的信息张量.tf.nn.conv2d完成卷积运算.卷积核(kernel),权值.滤波器.卷积矩阵或模版,filter.权值训练习 ...
- Example [mybatis] 的用法
example.or() .andField1EqualTo() .andField2IsNull(); example.or() .andField3NotEqualTo() .andField4I ...
- LG5901 【模板】欧拉定理
题意 题目描述 给你三个正整数,$a,m,b$,你需要求: $a^b \mod m$ 输入输出格式 输入格式: 一行三个整数,$a,m,b$ 输出格式: 一个整数表示答案 输入输出样例 输入样例#1: ...
- 生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)
本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/8,欢迎留言. 安装软件包:mongodb-linux-x86_64-3.4.1.tgz ...
- Scala 方法与函数
Scala 方法与函数:http://www.runoob.com/scala/scala-functions.html Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分 ...
- day 60 Bootstrip学习
图标地址 http://fontawesome.io/icons/ 图标用法地址 http://fontawesome.io/examples/ 实现代码 <!DOCTYPE html> ...
- nightwatchjs 基于nodejs&& webdriver 协议的自动化测试&&持续集成框架
nightwatchjs 是基于nodejs&& webdriver 协议的自动化测试&&持续集成框架 参考架构 参考资料 http://nightwatchjs.or ...