WordPress让媒体文件也有分类和标签

日期: 标签:WordPress教程 38 条留言
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我
文章目录

以下方法存在问题,点此看:新方法

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

媒体编辑页面的原始状态

媒体编辑页面的原始状态

很明显,在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,刷新一下媒体编辑页面,你会看到右边栏多了个分类目录:

给媒体文件添加分类

给媒体文件添加标签

在当前主题的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,刷新一下媒体编辑页面,你会看到右边栏多了个标签栏:

给媒体文件添加标签

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

多媒体列表页添加显示媒体的分类和标签

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

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' );

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜博客 https://www.ludou.org/wordpress-applying-categories-tags-and-custom-taxonomies-to-media-attachments.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

38 条留言

点此留言
  1. 生活有意思

    博主终于更新了~

  2. 路易大叔

    连后台都不用的人无缘此功能

  3. 红网问答

    一般媒体文件都另外放一个地方,备份方便点

  4. 似水流年

    我就看看,我不说话

  5. 烂番茄

    瞧瞧。学习来了哈!

  6. 李君南

    高大上啊!

    • Ludou

      @李君南 很简单的功能,还谈不上高度上吧.

      • haguo

        @Ludou hi,@露大大,我想问可以在添加新自定义文章类型(Post Type)时,也有显示多媒体类型的预览图吗?应该怎么办呢?

  7. 深蓝

    越来越觉得 wp 好强大。

  8. 有点蓝

    这样的话,在FTP媒体目录里也能生成对应分类和标签的文件夹吗?
    如果能的话真是太实用了。

  9. 超級efly

    支持一下~長知識啦~~

  10. Magic

    我的博客里面图片比较多,我想把每篇文章页面弄成一个页面显示一张图片,请问怎么处理呢

    • 露兜

      @Magic 后台 – 文章,编辑文章,保留一张图片

  11. QQ80805588

    register_taxonomy ( 'page_tags', 'page', $args ); 试试这个函数 可以为指定类型定制分类,这样就不会共享文章分类, 如产品分类,媒体分类

    • 露兜

      @QQ80805588 不错的方法

    • 小顾

      @QQ80805588 你好,请问这个代码,配合
      function ludou_add_categories_to_attachments() {
      register_taxonomy_for_object_type( 'category', 'attachment' );
      }
      add_action( 'init' , 'ludou_add_categories_to_attachments' );
      register_taxonomy ( 'page_tags', 'page', $args );
      怎么写到function.php里面呢?

  12. 二大爷

    前台怎么调用 显示呢

  13. highsea

    这个功能不错,路过……

  14. 购物生活好店品

    我想要实现,第二个自定义文章类型的分类,共享第一个自定义文章类型的分类,怎样操作呢

  15. 林生

    你好,你页面的锚点链接是怎么实现的,能告诉吗,谢谢

  16. 小顾

    请问代码是插入到 functions.php 哪个位置呢?求指教。

    • 露兜

      @小顾 随便找个 <?php 在下面另起一行,粘贴即可。

      • 小顾

        @露兜 站长,我昨晚修改了一下之后,就无法add new images to image gallery了,站长知道怎么解决这个问题吗?

        • 露兜

          @小顾 不知道add new images to image gallery是哪里的提示

          • 小顾

            @露兜 是woocommerce插件的product项目。

          • 露兜

            @小顾 抱歉,对woocommerce不是很熟。另外,如果你用的是文中的代码,并且没做过任何更改的话,应该不会出现这样的问题。

  17. tt

    你好,请问一下如果我想对多媒体的标签进行搜索要怎么做。比如我将一张图tag标为红色,那我在搜索框里查红色怎么不出来?是不是要对search功能修改。

  18. 觉远

    你好!按你的方法添加了完成了,有分类和标签,但在所有文章里有快速编辑的按钮,在多媒体里却没有快速编辑的按钮,请问该怎么添加

  19. 枫先生

    这个功能好,我喜欢

  20. zszz

    露兜你好,我用完这段代码后,的确可以对媒体库进行分类,并且可以显示出每个附件的固定链接。
    但是,我想在每个分类目录中,也能显示出这类附件的链接。以你的博客为例,如果要在“教程指南”(https://www.ludou.org/category/tutorials)这个分类里,也能显示出“被归为教程指南类”的附件的固定连接。这样应该怎么做呢?
    经过我的测试,如果不加修改只能显示出文章,而无法显示出附件页面。

  21. zszz

    (接上段)我似乎知道应该在archive.php里加一段代码,但是找不到如何附件页面相关的函数。求站长帮帮忙!!

  22. 花卉说

    meta分类不错,以后会用到。
    请问如何解决媒体库同一张图片被多次上传,这样就属于重复的垃圾。

    • 露兜

      @花卉说 图片内容没法识别,即使可以消耗的资源也大。
      除非是同名文件。

  23. 7S分享网

    方法是很好的,现在4.9的系统不知道能否支持了,我先试试看了

发表留言