佐賀でふらふり

佐賀をうろつくWebデザイナーのブログ

WordPress お仕事 思うこと

WordPressで画像ディレクトリの指定は、slug使っちゃう派?投稿しちゃう派?


いやぁ、今日は暖かかったですね。
これで週末は一気にお花見散歩に出かけられそうな感じですが、明日から雨らしいです…。

さて、なんかよくわからないタイトルになりましたが、WordPressで企業サイトなど作ってる時に、それぞれのページにメインビジュアル的なものがある場合があります。

その時に画像のディレクトリ、もしくはファイル名をスラッグと揃えることが多いんです。
イレギュラーな場合は条件分岐で対応するんですが、それが複雑になってくると、わざわざテーマに書くよりも、投稿部分に書き込んだほうが楽じゃないか。と気づいたわけです(今頃)。

一般的にどっちが多いんでしょうね。

目次

  1. こんなイメージ
  2. テーマに書くメリットデメリット
  3. 投稿に書くメリットデメリット
  4. まとめ

こんなイメージ

なんとも伝わりにくいと思いますが、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-&gt;post_name;//ページスラッグ取得
$p_title = $page-&gt;post_title;//ページタイトル
?>
<div id="main-visual">
<img src="img/<?php echo $p_slug;?>/mv.jpg" alt="<?php echo $p_title;?>">
</div>   

WordPressでページのスラッグを取得する方法

と書いておけば、どの固定ページでも画像のファイル名を共通化することで、使い回しができるんですよね。
1回書いたら終わり。楽ちんです。

ただし、イレギュラーな場合、例えばアバウト(about)ページは画像だけど、それ以外はテキストタイトルがいいという感じの時。

<?php
$page = get_post( get_the_ID() );//ページの情報取得
$p_slug = $page-&gt;post_name;//ページスラッグ取得
$p_title = $page-&gt;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とか)つくることが多いですね。

結局、僕は投稿欄に書くことはめったにないんですが、世の中のスタンダードとしては、どっちなんですかね。
今度から人のテーマみるときは、そのへんも意識して見て行きたいと思います。
そいぎ~。


返信する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA