首页 > 解决方案 > 传递给 PHP WordPress body_class 的 URL 参数值

问题描述

我希望将 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' );
?>

标签: phpwordpressurl-parameters

解决方案


I just tested this code out with my WP site and it worked fine. The only edit is to move your $_GET conditional logic to inside your action hook.

Also, as @SallyCJ pointed out, you probably want to include the utm-campaign name as a class. So this will add a generic 'utm_campaign' class and the dynamic $utm_campaign class since you might have common styles for all UTM campaign landing pages.

<?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' );
?>

推荐阅读