【问题标题】:URL parameter value passed to PHP WordPress body_class传递给 PHP WordPress body_class 的 URL 参数值
【发布时间】: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' );
?>

【问题讨论】:

    标签: php wordpress url-parameters


    【解决方案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 - 是的。我正在遵循原始代码,但回想起来两者都应该添加到类列表中。干杯
    • 感谢您的帮助。它仍然对我不起作用,我将检查更多的东西。缓存被禁用..
    猜你喜欢
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多