You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复WordPress中body_class添加data属性失效的问题?

修复WordPress body标签添加data属性的问题

你当前的问题出在用错了过滤器:body_class这个钩子是专门用来管理<body>标签的class属性的,不管你往数组里加什么字符串,都会被当成class值的一部分,所以才会把data-tipology="lesson"变成class。

下面给你两种靠谱的修复方法:

方法一:用官方推荐的body_attributes过滤器(WordPress 5.8及以上版本适用)

这个过滤器是WordPress专门用来处理body标签所有属性的,直接往属性数组里添加键值对就行:

function edi_custom_body_attributes( $attributes ) {
    // 判断当前是否是sfwd-lessons的单页
    if ( is_singular('sfwd-lessons') ) {
        $attributes['data-tipology'] = 'lesson';
    }
    return $attributes;
}
add_filter( 'body_attributes', 'edi_custom_body_attributes' );

方法二:手动修改主题header.php(兼容旧版WordPress)

如果你的WordPress版本低于5.8,没法用上面的钩子,可以直接修改主题的header.php文件:

  1. 找到文件里的<body>标签行,通常是这样:
<body <?php body_class(); ?>>
  1. 改成带条件判断的代码:
<?php
// 初始化属性字符串
$extra_body_attrs = '';
// 判断当前页面类型
if ( is_singular('sfwd-lessons') ) {
    $extra_body_attrs .= ' data-tipology="lesson"';
}
?>
<body <?php body_class(); ?><?php echo $extra_body_attrs; ?>>

注意:如果用的是官方主题或第三方主题,建议先创建子主题再修改,避免主题更新时丢失修改内容。

内容的提问来源于stack exchange,提问作者bsiglio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 06:52:09