使用以下代码尝试将页面 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>