web-dev-qa-db-ja.com

<html>要素にクラスを追加する方法

私はWordpressでX-Themeを使用していて、<html>タグのCSSクラスが必要なのは1ページに限られていました。これは私が私の子テーマヘッダファイルに追加したコードです:

<!-- If page#=103, add this class -->
<?php
    if( is_page( 103 ) ) {
        ?>
        <html class="html-homepage">
        <?php
    }
?>

コードは_header.phpファイルに入り、問題なく動作しているようです。

私の質問は、この方法で何かがうまくいかなくなるかどうか、またはこれがこれを行うための非常に厄介な方法であるかどうかです。私は私のために働いた別の解決策を見つけることができませんでした。

Wordpressが処理を行っているので、うまくいくはずですが、これが他のWordpressの機能を妨げないようにしたかったのです。

ありがとうございます。

編集:私が追加したコードは、Wordpressのコアファイルではなく、子のテーマファイルにあります。

1

これがクラスを追加する方法です。 blogをページのスラッグに置き換えます。例 - このクラスはexample.com/blogにのみ追加されます。このコードをあなたのheader.phpに入れてください

<?php if($post->post_name === 'blog'){ ?>
    <html class="html-homepage">
<?php } else { ?>
    <html>
<?php ?>
0
Liam Stewart

Htmlタグにクラスを割り当てることが「合法的」(または効果的)かどうかはわかりません。 追加さて、もう少し調べてみると、HTMLタグにはスタイルやクラスなどの属性を含めることができることがわかっています。 BODYタグではなくHTMLタグにスタイルを追加する理由がよくわからない。

元の答え

あなたが必要としているのは、特定のページの「body」クラスに追加するものです。この同様の質問に対する回答を参照してください。 https://stackoverflow.com/questions/2466073/add-a-custom-class-name-to-wordpress-body-tag .

そして、通常は(または決して)テーマファイル(またはWPコアコード)を変更しないでください。テーマの動作を調整するには、子テーマを使用する必要があります。そうすれば、子テーマのfunction.phpファイルにフィルタを追加することができ、加えた変更はテーマやWP updateで上書きされません。

上記の関連質問で解決策を使用することはあなたのテーマがbody_class関数を適切に使用していることを前提としています。それが、子テーマがより良い解決策であるもう一つの理由です - あなたはテーマがページ出力でbody_class関数を使うことを確実にすることができます。

0
Rick Hellewell