いやぁ、今日は暖かかったですね。
これで週末は一気にお花見散歩に出かけられそうな感じですが、明日から雨らしいです…。
さて、なんかよくわからないタイトルになりましたが、WordPressで企業サイトなど作ってる時に、それぞれのページにメインビジュアル的なものがある場合があります。
その時に画像のディレクトリ、もしくはファイル名をスラッグと揃えることが多いんです。
イレギュラーな場合は条件分岐で対応するんですが、それが複雑になってくると、わざわざテーマに書くよりも、投稿部分に書き込んだほうが楽じゃないか。と気づいたわけです(今頃)。
一般的にどっちが多いんでしょうね。
目次
こんなイメージ
なんとも伝わりにくいと思いますが、HTMLはだいたいこんな感じになるかと思います。
<div id="main-visual"> <img src="img/about/mv.jpg" alt="佐賀でふらふりについて"> </div>
この時の『about』部分を、ページやカテゴリのスラッグを取得して当てはめるのか、投稿に直接書いてしまうか。どっちが管理しやすいんだろうなぁ。と。
テーマに書くメリットデメリット
テーマに書くというのは、スラッグを取得して表示する場合です。
例えば、page.phpがあるとしたら、
<?php $page = get_post( get_the_ID() );//ページの情報取得 $p_slug = $page->post_name;//ページスラッグ取得 $p_title = $page->post_title;//ページタイトル ?> <div id="main-visual"> <img src="img/<?php echo $p_slug;?>/mv.jpg" alt="<?php echo $p_title;?>"> </div>
と書いておけば、どの固定ページでも画像のファイル名を共通化することで、使い回しができるんですよね。
1回書いたら終わり。楽ちんです。
ただし、イレギュラーな場合、例えばアバウト(about)ページは画像だけど、それ以外はテキストタイトルがいいという感じの時。
<?php $page = get_post( get_the_ID() );//ページの情報取得 $p_slug = $page->post_name;//ページスラッグ取得 $p_title = $page->post_title;//ページタイトル ?> <div id="main-visual"> <?php if(is_page('about'):?> <img src="img/<?php echo $p_slug;?>/mv.jpg" alt="<?php echo $p_title;?>"> <?php else:?> <?php echo $p_title;?> <?php endif;?> </div>
というように条件分岐が必要になります。
そして、この条件が複雑になってくると、テーマに書いて効率的にやろうとしてるのに、非効率になってしまいます。
投稿に書くメリットデメリット
そこでテーマではなく、投稿に一緒に書いてしまえば、複雑な条件分岐なんて関係なしです。
アバウトページなら
<div id="main-visual"> <img src="img/about/mv.jpg" alt="佐賀でふらふりについて"> </div> <p>佐賀でふらふりについて、説明します。</p>
ヒストリーページなら
<div id="main-visual"> <img src="img/history/mv.jpg" alt="佐賀でふらふりの歴史"> </div> <p>佐賀でふらふりの歴史は古く、当時福岡天神に務めていた頃に…</p>
といったように、それぞれのページでそれぞれ書いていく形です。
確かに、あの条件、この条件考える必要はありません。
HTMLでコーディングするのと同じように、投稿にぶちこんでやれば解決します。
ただし、ファイル名を変えないといけないというような場合には、全ページ1つずつ変えていく必要がありますね。
(この辺は、SQLとかで一気にやれちゃうのかもしれませんが)
あと個人的には固定ページには特にHTML書いていくことが多いので、そこに余計なHTMLは書きたくない。というのがあります。
まとめ
結局のところ、最初にどう設計するか。という部分になるかと思いますが、デザイン揃ってからコーディングする場合や、自分でデザインしたものをコーディングする場合であれば、すぐに決まると思います。
ただ、納期が迫ってるので、デザインデータを出来たものから送ります。的な場合は、もうとりあえずやりやすい方(テーマに書く方)でやっておいて、後々条件分岐していく形が多いと思います。
条件分岐でも補えないくらいの構文の違いが出て来た場合も、投稿欄には書かず、別テーマ(page-history.phpとか)つくることが多いですね。
結局、僕は投稿欄に書くことはめったにないんですが、世の中のスタンダードとしては、どっちなんですかね。
今度から人のテーマみるときは、そのへんも意識して見て行きたいと思います。
そいぎ~。