0

わかりましたので、私はPHPとJavaにあまり強くありません。私はトーを学んでいます。それが重要な場合、今私はエピクを使用してジェネシスを扱っています。運が悪いが、functions.php のテンプレートの特定の div にクラスを追加するフィルターを作成しようとしています。

サイトの幅を広げましたが、ブログ セクション全体 (ブログのホーム、カテゴリ、および単一の投稿) をそれほど広くしたくないので、ネイティブ プログラミングを使用して、このようなものの書き方を学ぶことができます。

現在、スタイルシートで幅を制御しています

    .page-id-89 .site-inner .wrap {
    padding: 0 5% 0;
}

これをフィルターとして記述し、サイトの上記のセクションの「.site-inner .wrap」にフックするにはどうすればよいですか?

したがって、基本的に関数は「.site-inner .wrap」を探し、それらの投稿タイプにパディングを付けてクラス(.squeezeなど)を追加します

私はこれを通して自分の道を学ぶので、どんな助けにも感謝します! 良い週末を

4

2 に答える 2

1

作業はおそらくすでに完了しています。テーマがbody_class正しく呼び出されている場合、body 要素には現在のテンプレート用にクラスが設定されているはずです。たとえば、WordPress サイトのホームページの body クラスは次のとおりです。

home page page-id-8 page-template

単一の投稿の本体クラスについて

single single-post postid-5418 single-format-standard

カスタム ページ テンプレートを使用している場合は、そのテンプレートに固有のクラス (通常は次の形式) もあります。my-custom-template-php

幅を広げたいすべてのページ、または逆に広げたくないページのすべてに特定の body クラスがある場合は、css セレクターでそのクラスを使用できます。たとえば、このセレクターはホームページにのみ適用されます。

.home .site-inner .wrap

拡張したいテンプレートを区別できない場合は、body_class関数をフィルタリングし、条件付きタグを使用して目的のクラスを追加できます。

add_filter('body_class', function($classes) {
    if( is_home() ) {
        $classes[] = 'wide';
    }
    return $classes;
});

上記の例では、クラスwideをホームページの body 要素に追加します。

于 2015-03-29T03:15:05.170 に答える