试图在我的身体课程中添加the_slug,但在wordpress上没有成功,任何人都可以建议


Trying to add the_slug to my body class with no success in wordpress, can anyone advise?

使用以下代码尝试将页面 slug 作为一个类添加到我的身体标签中,但还没有成功,谁能建议我如何实现这一目标?

PHP 在函数中添加.php

function add_body_class( $classes )
{
    global $post;
    if ( isset( $post ) ) {
        $classes[] = $post->post_type . '-' . $post->post_name;
    }
    return $classes;
}
add_filter( 'body_class', 'add_body_class' );

您可以尝试将以下内容添加到您的functions.php

function page_bodyclass() {  // add class to <body> tag
    global $wp_query;
    $page = '';
    if (is_front_page() ) {
           $page = 'home'; // If it's your Front page, apply 'home' as classs
    } elseif (is_page()) {
       $page = $wp_query->query_vars["pagename"]; // Otherwise use pagename
    }
    if ($page)
        echo 'class= "'. $page. '"';
}

然后将<body>标签更改为 <body <?php page_bodyclass(); ?>>

作为接受答案的替代方法,请在标题中找到具有以下内容的行(通常为 header.php

):
<body <?php body_class(); ?>>

并将其更改为:

<body <?php body_class($post->post_type . '-' . $post->post_name); ?>>

我正在使用这个

<?php body_class(strtolower(get_the_title())); ?>

遇到这个寻找添加等于 slug 用于 CSS 目的的类的方法。

把它放在<body>之后的标题中。它获取页面 slug 并将其放在 id="slug" 的div 中的页面上。

<?php 
    global $post;
    $slug = $post->post_name;
    echo "<span id='slug'>" . $slug . "</div>"; 
?>

把它放在标题中之前 </head> 隐藏 slugdiv(或任何 CSS 位置)。

<style>
    #slug {display: none;}
</style>

</html>之前将其放在</body>之后的页脚中。 它获取 id="slug" 元素的内部,找到 id="main" 的元素,并添加一个等于页面 slug 的类

<script>
var slug_class = document.getElementById("slug").innerHTML;
var main_tag = document.getElementById("main");
main_tag.classList.add(slug_class);
</script>