デザイン事務所ダウンアンダー

WordPressのbody_class()で意図せずclass=”home”が付加される場合の対処。

ページによって適切なclassを<body>に付与してくれる<?php body_class(); ?>という関数があります。

使い方は

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

と書くだけです。詳細は「テンプレートタグ/body class」をご覧ください。

これが、意図しないページにhomeというクラスを付けてくることがあります。例えば検索結果を表示するテンプレートにindex.phpやhome.phpを指定している場合です。この時、.homeを前提としたCSSを組んでいると表示が崩れてしまいます。

その回避策です。

is_front_page()でもis_home()でも回避できないため、以下のように書きます。

<?php
$request_uri = $_SERVER['REQUEST_URI'];
if($request_uri == "/") {
$front_page = "front_page";
}
?>
<body <?php body_class($front_page); ?>>

<body class=”home”>を消すのではなくfront_pageを付け加えるわけです。

これで本当のフロントページ/ホームにはclass=”front_page”が付加され

<body class=”home front_page”>

となります。

あとはstyle.cssで.homeを指定していた箇所を.front_pageに差し替えます。

 

この記事は2023/03/21に公開され2023/08/26に更新、168 views読まれました。

    2023/08/26   技術ノート   

最近1ヶ月で人気の記事

WordPressのbody_class()で意図せずclass="home"が付加される場合の対処。 - デザイン事務所ダウンアンダー 東京都練馬区。Wordpressはおまかせ。ホームページ・印刷など販売促進のためのデザインを提案します。

Copyright©デザイン事務所ダウンアンダー, All Rights Reserved.