Webサイト専門プログラマの言いたい放題

元システムエンジニアがサイト制作とプログラミングについて好き放題しゃべります。

WordPressマンツーマンレッスン後記

f:id:wp-lesson:20160107202655j:plain

今日2件目のレッスンは、画面の横いっぱいに広がる背景画像の設置。

トップページに大きな画像が入れられるテンプレートは多いですが、
各固定ページに独自の画像が入れられるテンプレートでない場合は、
自力で設置しなければなりません。

考え方1

まず、画像を入れたい場所が、固定ページの編集画面で入れた内容が
表示されるエリアの中か外かを見極める必要があります。

通常、WordPressの投稿や固定ページの編集画面からタイトルと本文を
登録すると、テンプレートファイルにあらかじめ仕組まれている所定の
場所に入るようになっています。

具体的には、the_title() や the_content() というWordPress独自の
関数がテンプレートファイルにPHPで書かれているからです。

通常、本文が入るエリアは画面の横いっぱいに広がるようなレイアウト
にはなっていませんので、

「固定ページの編集欄に画像を貼り付けたらいいのでは?」

という考え方は間違いです。

テンプレートファイルに書かれているHTML構造と、そこに割り当てて
あるスタイルシートCSS)の対応関係や設定内容を読解して、

「画面の横いっぱいに広がっているエリアを探し出す」

ことが必須です。

もしそのようなエリアがテンプレートファイルに書いてなければ、
自分でテンプレートファイルに画像の表示エリアとなる枠組み

(一般には<div>タグでボックス化します)

を追加します。

考え方2

HTMLをある程度わかっている方は、<div><img></div>のように
直接画像タグをテンプレートファイルに書きこめば良いと思うでしょう。

ただし、追加したい画像の表示エリアが、header.php のように全ページ
共通のテンプレートファイル内に含まれている場合は、<img>タグを
書き込んでしまうと全ページに同じ画像が表示されることになります。

特定のページに、そのページ専用の画像を表示したいならば、
共通のテンプレートファイルに<img>タグで画像を固定する考え方は
使えません。

この場合は、<div class="bg"></div>のように空っぽの枠だけを
テンプレートファイルに追加し、画像はスタイルシートCSS)で背景
画像として敷き詰める考え方をとります。

WordPressには、各ページのHTMLの<body>タグに、ページの種類や
ページ固有のID、カテゴリーやタグなどといった識別情報を、class名
として列挙したものが挿入される仕組みがあります。

もちろんWordPressのコアシステムのPHPプログラムで、データベースの
情報を照合して適切な class名 の列挙を埋め込むように作ってある
からなのですが。

この原理を利用すると、<body class="single single-page postid-12">
のように、ページIDをスタイルシートCSS)で利用できることから、

.postid-12 .bg {
background: url(....);
}

といった、特定のページだけに適用されるスタイルを定義することが
できます。

完全マンツーマンのオンラインレッスンのご案内

f:id:wp-lesson:20151225232446j:plain
f:id:wp-lesson:20151222145958j:plain

≫ ページ内の「先生に聞いてみる」ボタンでお気軽にご相談ください。

2015年、パソコンジャンル評価1位

f:id:wp-lesson:20160107113633j:plain
f:id:wp-lesson:20151222145958j:plain

≫ ページ内の「先生に聞いてみる」ボタンでお気軽にご相談ください。

平日の夜は予約が埋まりやすいのでお早めにご相談ください。
Facebookでもプログラミング&コーディングの本質を投稿しています。
Facebook(友達限定のプライベート投稿で本質的な情報発信中)