如何通过ACF仅为WordPress文章的body标签添加指定类
解决ACF自定义字段导致首页body被添加dark类的问题
问题根源在于你的函数未限定执行场景,首页加载时get_field('dark_mode')会读取到最新发布文章的字段值,从而错误给首页body添加类。只需在逻辑中增加文章页面判断即可解决:
修改后的代码如下:
function add_acf_body_class( $classes ) { // 仅在单篇文章详情页执行字段判断逻辑 if ( is_single() ) { global $post; $value = get_field( 'dark_mode', $post->ID ); if ( $value ) { $classes[] = 'dark'; } } return $classes; } add_filter( 'body_class', 'add_acf_body_class' );
关键说明:
is_single():WordPress内置条件标签,精准判断当前是否为单篇文章(post类型)的详情页,直接限定逻辑仅在目标页面生效。- 显式传入
$post->ID给get_field,避免特殊场景下字段读取混乱,提升代码稳定性。
内容的提问来源于stack exchange,提问作者SARN
相关产品推荐
相关产品推荐

