ワードプレスで自作テーマを作成中です。
カスタム投稿タイプで下図のような構造でtop-areaクラスを持つsectionを作りたいと思っています。
こうすることで実装したい形は下記です。
- <h1></h1>部分と<div class="row"></div>を<section class="top-area"></section>で一括りにして、同じ背景色とする。
- <section class="top-area"></section>の背景色(上図では赤色部分)を投稿毎に変えたい。
htmlは下記のように吐き出します。
<section class="top-area"> <h1>記事タイトル</h1> <div class="row"> <div class="left-row"> <p>投稿毎に異なる文章(簡単な記事の説明)</p> </div> <div class="rigtht-row"> <img>投稿毎に異なる画像</img> </div> </div> </section> <section class="content"> 記事の文章部分 </section>
ただし通常の投稿画面からの投稿だと
- タイトル部分の親要素に投稿毎で異なるプロパティを指定できない
- タイトルより下はphpファイル上でthe_content()として取得する部分になるため上記のrowクラスを持つdiv要素の設定方法が分からない
という点から、実装に困っています。
苦肉の策としてはhtmlの構造を下記のようにする。
<section class="top-area"> <h1>記事タイトル</h1> </section> <section class="top-area"> <div class="row"> <div class="left-row"> <p>投稿によって異なる文章(簡単な記事の説明)</p> </div> <div class="rigtht-row"> <img>投稿によって異なる画像</img> </div> </div> </section> <section class="content"> 記事の文章部分 </section>
- 2つ目のtop-areaクラスを持つsectionは、投稿毎に投稿画面に直接コードを打ち込む。
- 記事を下書きor公開したら割り振られる 「id」を見て投稿毎に下記のようにcssファイルに追記し背景色を設定する。
.page-id-〇〇 .top-area { background-color: #○○○○○○; }
このようにすれば何とか出来そうですが、以下の点でこのような実装はあまりしたくないのが実際です。
- ビジュアルでは<h1>と<div class="row">が一つでまとまっている部分なので、分離させることに違和感がある
- idを見てcssを追記していくことで管理コストが上がる。
もっとスマートな方法があれば教えて頂けると幸いです。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー