WordPress中给媒体文件添加分类和标签的PHP功能实现


Posted in PHP onDecember 31, 2015

从WordPress后台媒体库上传的媒体文件,不像文章那样可以给它指定分类和标签,但是很多时候我们又需要这样的功能,如一些下载站、图片站等。

媒体编辑页面的原始状态

WordPress中给媒体文件添加分类和标签的PHP功能实现

很明显,在WordPress后台的媒体编辑页面,默认情况下是没有分类和标签给你选的。

给媒体文件添加分类

在当前主题的functions.php中添加以下php代码:

function ludou_add_categories_to_attachments() {
  register_taxonomy_for_object_type( 'category', 'attachment' );
}
add_action( 'init' , 'ludou_add_categories_to_attachments' );

保存并上传functions.php,刷新一下媒体编辑页面,你会看到右边栏多了个分类目录:

WordPress中给媒体文件添加分类和标签的PHP功能实现

给媒体文件添加标签

在当前主题的functions.php中添加以下代码:

function ludou_add_tags_to_attachments() {
  register_taxonomy_for_object_type( 'post_tag', 'attachment' );
}
add_action( 'init' , 'ludou_add_tags_to_attachments' );

保存并上传functions.php,刷新一下媒体编辑页面,你会看到右边栏多了个标签栏:

WordPress中给媒体文件添加分类和标签的PHP功能实现

同时,在多媒体列表页,也添加显示媒体的分类和标签,同样左边栏的多媒体菜单下也多了分类目录和标签两个子菜单:

WordPress中给媒体文件添加分类和标签的PHP功能实现

好了,给媒体文件添加分类和标签就这么简单,我们可以将上面添加的代码合成下面的代码,更简洁更高效:

function ludou_add_categories_tags_to_attachments() {
  register_taxonomy_for_object_type( 'category', 'attachment' );
  register_taxonomy_for_object_type( 'post_tag', 'attachment' );
}
add_action( 'init' , 'ludou_add_categories_tags_to_attachments' );

另一种方法

其实还有一种方法实现,并且可以实现给多媒体添加独立的分类,而不必混用文章的分类,而且在WordPress后台的多媒体列表页可以直观显示媒体的分类。

使用方法,同样是在当前主题的functions.php中添加php代码:

function ludou_create_media_category() {
 $args = array(
  'label' => '媒体分类',
  'hierarchical' => true,
  'show_admin_column' => true,
  'show_ui'   => true,
  'query_var'  => true,
  'rewrite'   => true,
 );

 register_taxonomy( 'attachment_category', 'attachment', $args );
}

add_action( 'init', 'ludou_create_media_category' );

如果你不排斥使用插件,推荐这个插件:Media Library Categories,可以实现批量修改媒体文件的分类。

PHP 相关文章推荐
一个ubbcode的函数,速度很快.
Oct 09 PHP
WINXP下apache+php4+mysql
Nov 25 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
php 函数中使用static的说明
Jun 01 PHP
探讨php中遍历二维数组的几种方法详解
Jun 08 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
Jun 24 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
php生成随机颜色的方法
Nov 13 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
php获取当前月与上个月月初及月末时间戳的方法
Dec 05 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 #PHP
WordPress中获取所使用的模板的页面ID的简单方法
Dec 31 #PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 #PHP
详解Window7 下开发php扩展
Dec 31 #PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 #PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
Jul 21 #PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 #PHP
You might like
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
php中的ini配置原理详解
2014/10/14 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
广州地球村科技数据库题目
2016/04/25 面试题
中学门卫岗位职责
2013/12/26 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
软件项目开发计划书
2014/05/01 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
学校推普周活动总结
2015/05/07 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫