WordPress如何在特定分类/标签文章标题旁显示图标或文字
WordPress特定分类/标签文章标题自动加标记操作指引
第一步:选择代码插入位置
- 优先用已安装的Custom Functions类代码片段插件:进入插件的新建代码片段页面,后续把代码粘贴到编辑框保存启用即可,这种方式不受主题更新影响,代码出错也能直接在插件后台禁用对应片段快速恢复
- 无相关插件的话可以改主题函数文件:进入WordPress后台「外观-主题文件编辑器」,在右侧文件列表找到
functions.php(主题函数模板),把代码追加到文件最末尾的?>标签之前即可,操作前必须全选复制文件原有内容备份到本地,一旦站点报错,把备份内容重新粘贴覆盖就能恢复
第二步:复制现成代码并修改自定义配置
直接复制下方完整代码,只需要修改标注出来的自定义配置段即可,不需要掌握PHP语法:
// 为特定分类/标签文章标题追加自定义标记 add_filter( 'the_title', 'add_custom_badge_for_posts', 10, 2 ); function add_custom_badge_for_posts( $title, $post_id ) { // 不在后台管理界面生效,避免影响后台标题显示 if ( is_admin() ) { return $title; } // ====================== 自定义配置开始 按需修改即可 ====================== // 配置分类对应标记:格式为 分类ID => '要显示的文字/图标代码', $category_badge_map = [ 3 => '<span style="color:#fff;background:#f44336;padding:2px 6px;border-radius:3px;font-size:12px;margin-right:6px;">编辑推荐</span>', 5 => '🔥', ]; // 配置标签对应标记:格式为 标签ID => '要显示的文字/图标代码', $tag_badge_map = [ 12 => '💡', 18 => '<span style="color:#fff;background:#2196f3;padding:2px 6px;border-radius:3px;font-size:12px;margin-right:6px;">原创</span>', ]; // ====================== 自定义配置结束 非必要不要改下方代码 ====================== // 匹配对应分类追加标记 foreach ( $category_badge_map as $cat_id => $badge ) { if ( has_category( $cat_id, $post_id ) ) { $title = $badge . $title; } } // 匹配对应标签追加标记 foreach ( $tag_badge_map as $tag_id => $badge ) { if ( has_tag( $tag_id, $post_id ) ) { $title = $badge . $title; } } return $title; }
第三步:获取分类/标签对应ID
- 进入WordPress后台「文章-分类目录」(标签则进「文章-标签」页面),鼠标悬停在需要设置的分类/标签名称上,浏览器底部状态栏会显示该条目的编辑链接,链接里
tag_ID=后面的数字就是对应ID,比如链接为.../term.php?taxonomy=category&tag_ID=3&post_type=post,对应ID就是3
常用调整方法
- 要把标记放在标题末尾:把代码里两处
$title = $badge . $title;改成$title = $title . $badge;即可 - 要显示自定义图标:先把图标上传到WordPress媒体库,复制媒体库给出的文件地址,把对应位置的文字/表情替换为
<img src="你的图标文件地址" style="height:1em;vertical-align:middle;margin-right:4px;" />即可 - 不想在侧边栏小工具、相关文章模块里显示标记:在
if ( is_admin() ) { return $title; }这段代码下方,新增一行if ( !is_home() && !is_archive() && !is_singular() ) { return $title; },标记就只会在首页、分类/标签归档页、文章详情页的主标题位置显示
注意:代码粘贴保存后先刷新前台页面验证效果,如果出现样式错位,调整自定义标记里的
padding、margin、font-size这类CSS参数即可,不需要修改逻辑代码
内容的提问来源于stack exchange,提问作者Dff
相关产品推荐
相关产品推荐

