当前位置: 首页 > 技术资讯 >

WordPress 为当前文章在【分类】小工具中的所属分类添加current-cat类名

我们可以使用 WordPress 自带的【分类】小工具来输入文章分类目录,在对应的分类存档页面,当前分类会高亮显示(添加了current-cat类名 ),但是但我们访问文章详情页面的时候,文章所属的分类,在【分类】小工具中并没有高亮显示(未添加current-cat类名)。

如何为当前文章在【分类】小工具中的所属分类添加current-cat类名,以便我们可以自定义当前分类的样式?今天,倡萌就来分享下实现的方式。

首先,我们在WordPress分类小工具的源代码中,找到了输入分类目录的函数部分:

/**
Filters the arguments for the Categories widget.
*
@since 2.8.0
@since 4.9.0 Added the $instance parameter.
*
@param array $cat_args An array of Categories widget options.
@param array $instance Array of settings for the current widget.
*/
wp_list_categories( apply_filters( ‘widget_categories_args’, $cat_args, $instance ) );

在代码中,我们可以看到它采用了 wp_list_categories() 函数输出分类列表,然后有一个 widget_categories_args 过滤钩子。我们查看 wp_list_categories() 函数文档,发现有一个 current_category 参数,用于指定当前分类,以便添加current-cat类名。该参数可以设置id或id数组。

实现的方式很简单,代码如下,可添加当前主题的 functions.php 或者你的插件文件中:

function wpdaxue_widget_categories_args( $cat_args, $instance ) {
if( is_singular(‘post’) ) { //仅在文章详情页执行
$categories = get_the_category(); // 获取当前文章分类数组
if ( ! empty( $categories ) ) {
$current_cat_ids = array();
foreach ( $categories as $category ) {
$current_cat_ids[] = $category->cat_ID; // 轮询获取文章所属分类的id
}
$cat_args[‘current_category’] = $current_cat_ids; // 将分类id数组添加到current_category参数
}
}
return $cat_args;
}
add_filter( ‘widget_categories_args’, ‘wpdaxue_widget_categories_args’, 10, 2 );

最终的效果如下图所示,已为当前文章所属分类添加了 current-cat 这个类名,这样就可以通过css定义样式了。

参考:https://developer.wordpress.org/reference/functions/wp_list_categories/

相关文章:

  • Day 07 借箸代筹(1):运算式、运算子
  • Day 26 Socket的实际应用(二)
  • Day24 测试写起乃 - Guard
  • 跨境电商如何赢得南亚市场,选品为王
  • 亚马逊卖家必知的包装要求概述
  • 封号的解决办法
  • DAY13 - 档案类的物件关系厘清(2) - Object URL, Data URI
  • RISC-V on Rust 从零开始(7) - 实作指令基本框架
  • 【没钱买ps,PyQt自己写】Day 17 / Project 制作标注 roi 工具, 开始导入 OpenCV 作为绘图引擎, 在图上画点并显示座标
  • 关於 micro:bit
  • Day 25 : Linux - 如何在windows使用scp去传送档案至Linux上?
  • 【Day 17】Google Apps Script - API 篇 - Spreadsheet Service - 电子试算表服务介绍
  • 予焦啦!Golang 执行绪与作业系统执行绪
  • Day 04:看看 Angular CLI 对我们做了什麽?认识专案架构
  • [Day 27]从零开始学习 JS 的连续-30 Days---BOM-浏览器物件模型(上)
  • Google SEO入门:如何做好谷歌网站排名SEO
  • 海外营销周报:谷歌产品评论算法更新,YouTube和Facebook仍是美社交媒体主流
  • 日本虚拟信用卡预付卡礼品卡大全
  • 简单做WordPress网站的方法:最快最便宜的做外贸网站的方法
  • 如何找国外网红营销?国外网红营销方法和推荐
  • 软件分享:xshell6/xftp6个人版下载,无需破解,永久免费使用
  • 如何引导用户快速购买下单的冲动?引导用户购买行为的方法(Call To Action)
  • 使用MailPoet扩展您的电子商务邮件列表
  • Nuxt.js官网和Nuxt.js介绍:Vue.js 的通用应用框架
  • 一键脚本:SmokePing一键安装/管理脚本
  • Google SEO优化排名的技巧:做好这20件事情谷歌排名必定上去
  • Windows服务器推荐:便宜好用稳定靠谱的国外Windows服务器推荐
  • 最便宜的国外VPS推荐:5美金以下的VPS大全
  • Git是什么?
  • WordPress 为当前文章在【分类】小工具中的所属分类添加current-cat类名