【问题标题】:How to add CSS class to body tag in Wordpress using body_class如何使用 body_class 在 Wordpress 中将 CSS 类添加到 body 标签
【发布时间】:2016-01-22 07:30:30
【问题描述】:

我正在 Wordpress 中构建自定义主题,当 URL 以 ?checklist-view=1 结尾时,我需要向 body 标记添加 CSS 属性

我下面的代码有什么问题,因为没有添加全屏?

我知道我需要使用超全局 $_GET,但是我对 PHP 完全陌生。

有没有更简单的方法来使用 body_class 模板标签(就像我在下面尝试的那样)或者这需要更复杂的 PHP

编辑: 将 $class 更改为等于字符串,而不是将其设置为数组。

<!doctype html>
<html <?php language_attributes(); ?>>
<head>
    <meta charset="<?php bloginfo('charset'); ?>" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0">
    <title>Process Street <?php wp_title(); ?></title>
    <link rel="profile" href="http://gmpg.org/xfn/11" />
    <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" type="text/css" media="screen" />
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
    <!--[if lt IE 9]>
    <script src="<?php echo get_stylesheet_uri(); ?>bower_components/html5shiv/dist/html5shiv.js"></script>
    <![endif]-->
    <?php wp_head(); ?>
</head>
<?php
//?checklist-view=1
$is_checklist = $_GET['checklist-view'];
$class= 'fullscreen';
if($is_checklist == '1') {
    echo $class;
}

?>
<body <?php body_class($class); ?>>

【问题讨论】:

    标签: php html css wordpress


    【解决方案1】:

    您不应该 echo 类,而是应该将其分配给稍后传递给 body_class() 的变量。我还要检查是否设置了checklist-view,以避免错误:

    <?php
    
    $is_checklist = $_GET['checklist-view'];
    if ( !empty( $is_checklist ) && $is_checklist === '1') {
        $class= 'fullscreen';
    } else {
        $class = '';
    }
    
    ?>
    <body <?php body_class($class); ?>>
    

    你也可以用三元运算符来达到同样的效果:

    $checklist = $_GET['checklist-view'];
    $class = ( !empty( $checklist ) && $checklist === '1') ? 'fullscreen' : '';
    ?>
    
    <body <?php body_class($class); ?>>
    

    【讨论】:

    • 你好。我尝试了这两种解决方案,但都没有将全屏类添加到 body 标签中。
    • 这不可能...你能var_dump( $_GET['checklist-view'] )吗?
    • 我把 var_dump 放在最后一个花括号下面,加载我的页面并在“检查元素”中搜索它,但似乎找不到任何东西。你觉得我该怎么做?非常感谢你的帮助。你是一个巨大的帮助。
    • 你不需要在任何地方检查它......它应该只是将$_GET['checklist-view']的内容打印到页面上。您确定您在正确的模板中执行此操作吗?
    • 看来我是个大笨蛋。我在 phpstorm 中的错误项目文件夹中工作。先生,您是一位绅士和一位学者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2017-09-18
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多