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 相关文章推荐
PHP环境搭建最新方法
Sep 05 PHP
php下使用无限生命期Session的方法
Mar 16 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
百度地图API使用方法详解
Aug 25 PHP
WordPress网站性能优化指南
Nov 18 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
php实现映射操作实例详解
Oct 02 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 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 一元分词算法
2009/11/30 PHP
php 读取shell管道传输过来的内容
2010/03/01 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
Python 文件管理实例详解
2015/11/10 Python
Python 字符串与数字输出方法
2018/07/16 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
Shell如何接收变量输入
2016/08/06 面试题
大学本科生的个人自我评价
2013/12/09 职场文书
会计助理岗位职责
2014/02/17 职场文书
经销商年会策划方案
2014/05/29 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js