传递给 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 参数值的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 中带有 jQ​​uery 的 AJAX:AJAX 调用未将属性值传递给 PHP 函数

将 PHP 变量传递给 vue.js vue 组件

如何将多个 PHP 变量传递给 jQuery 函数?

如何将 PHP 变量传递给 Vue 指令

PHP 命名空间 - 父类变量未正确传递给子类

将一个函数中创建的 PHP 变量传递给另一个函数