ホームページを除くすべてのインテリアページにボディクラスを追加する方法

ホームページを除くすべてのページのボディタグにクラスを追加したい。現在、私は持っています。

<?php body_class("interior"); ?>

しかし、ホームページを含むすべてのページに「内部」を追加します。

bodyタグにクラスを追加するための最良の標準的な方法は何ですか?

回答

試してみてください:

<?php $class = ! is_home() ? "interior" : ""; body_class( $class ); ?> 

またはこれ:

<?php body_class( ! is_home() ? "interior" : "" ); ?> 

コメント

  • ご回答ありがとうございます!ただし、' home 'ページにもインテリアが追加されます。
  • 奇妙なことに、ここで機能しました。
  • 試してみてください:< body <?php body_class(!is_home()& &!is_front_page()?" internal ":" "); ?> >
  • 読み取り設定を静的に調整しましたが、ページが選択されていません&機能しました。

回答

フィルター body_class を使用できます。

add_filter( "body_class", "body_class_wpse_85793", 10, 2 ); function body_class_wpse_85793( $classes, $class ) { // This one overrides all original classes if( is_home() ) $classes = array( "interior" ); // This one simply adds a new class //if( is_home() ) // $classes[] = "interior"; return $classes; } 

コメント

  • とてもいいです。 'ファイルに追加の変更を加える必要がない場合は、header.phpを子テンプレートディレクトリにコピーしないもう1つの理由。

回答

body_classフィルターを使用して、WordPressのbodyタグにクラスを追加してください。

以下のコードをfunctions.phpファイルに追加します。

すべてのページのbodyタグにクラスを追加します。

 add_filter("body_class", "wp_body_class"); function wp_body_class($class) { $class[] = "my-custom-class"; // Add your class name here. Multiple class names can be added "classname1 classname2". return $class; } 

ホームページを除外

if (!is_front_page() ) { // exclude home or any other page. add_filter("body_class", "wp_body_class"); } function wp_body_class($class) { $class[] = "my-custom-class"; // Add your class name here. Multiple class names can be added "classname1 classname2". return $class; } 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です