传递给 PHP WordPress body_class 的 URL 参数值
Posted
技术标签:
【中文标题】传递给 PHP WordPress body_class 的 URL 参数值【英文标题】:URL parameter value passed to PHP WordPress body_class 【发布时间】:2021-08-16 00:59:41 【问题描述】:我希望将 URL 参数中的单个值作为一个类传递给页面正文。在本例中,URL 参数是 utm_campaign
,我想将其值作为正文类附加到 WordPress 中。
我觉得我的问题在于设置过滤器。感谢您提供任何帮助,并且由于我正在学习,如果您能解释一下,那就更好了。谢谢!
<?php
$utm_campaign = false;
if(isset($_GET['utm_campaign']))
$utm_campaign = $_GET['utm_campaign'];
function wp_body_classes( $classes )
$classes[] = 'utm_campaign';
return $classes;
add_filter( 'body_class','wp_body_classes' );
?>
【问题讨论】:
【参考方案1】:我刚刚用我的 WP 网站测试了这段代码,它运行良好。唯一的编辑是将您的 $_GET 条件逻辑移动到您的操作挂钩内。
另外,正如@SallyCJ 指出的那样,您可能希望将 utm-campaign 名称作为一个类包含在内。因此,这将添加一个通用的 'utm_campaign' 类和动态的 $utm_campaign
类,因为您可能对所有 UTM 活动登录页面都有共同的样式。
<?php
function wp_body_classes( $classes )
if(isset($_GET['utm_campaign']))
$classes[] = 'utm_campaign';
$classes[] = $_GET['utm_campaign'];
return $classes;
add_filter( 'body_class','wp_body_classes' );
?>
【讨论】:
您不应该使用$classes[] = $utm_campaign;
还是只使用$classes[] = $_GET['utm_campaign'];
..?
@SallyCJ - 是的。我正在遵循原始代码,但回想起来两者都应该添加到类列表中。干杯
感谢您的帮助。它仍然对我不起作用,我将检查更多的东西。缓存被禁用..以上是关于传递给 PHP WordPress body_class 的 URL 参数值的主要内容,如果未能解决你的问题,请参考以下文章