29. 9月 2012 · [WP] テーマの画像などを呼び出すパスに template_directory (template_url) を使わない方法 はコメントを受け付けていません。 · Categories: WEB制作 · Tags: , ,

ここ数日 GameSalad にハマってた @mekemokeです。その話はまたそのうち。

ローカルでWP用のデザインを作っていると、テンプレートパスを入れるのが億劫になってしまいます。そんなことないですか?ソースに /wordpress/wp-content/themes/ 〜 とか表示されるのもなんだかな〜と。

あとはできるだけ <?PHP 〜 ?> を使いたくなくて、表示は echo で対応したい。だから最初にWordPressのソース見た時、うわあぁぁ…となりました。わかりやすいといえばわかりやすいのですが。記述の方法としてはこっちのほうが速いんでしょうか。重宝してたヒアドキュメントは遅いようですね。

参考:ダブルクオート/シングルクオート/ヒアドキュメント、echo/printの速度比較 – [PHP + PHP] ぺんたん info

閑話休題。

例えばテーマで使用している画像を呼び出す際に、通常は

/PATH/TO/WPDIR/wp-content/themes/テーマ名/img/header.jpg

となりますが、これを

./img/header.jpg

で呼び出せるようにします。.htaccess の RewriteRule を使用します。

.htaccess や mod_rewrite については下記がとてもわかりやすくて参考になります。

参考:
ミケネコの htaccess リファレンス
mod_rewriteのインストール・設定 – RewriteRuleのサンプル [Fedora, RedHat, CentOS] – Linux

早速ソースを。

後半はwpが作ってくれるので見たことある方も多いと思います。RewriteBase の次から別の RewriteRule を追加します。

詳しい説明は割愛しますが、使い方としては下記の通り。

  1. テーマファイルのフォルダに img や js フォルダを作ります。
  2. 作ったフォルダに画像などを入れます。
  3. テンプレートで画像などを使う際には img src=”./img/header.jpg” と記述します。template_directory などを入れる必要はありません。
  4. 実際に確認してみると、画像が表示されているのがわかります。

フォルダの命名に制限はないので、フォルダを追加→RewriteRuleを追加でOKです。
注意する点として、home_url と site_url が違う場合は、パスが変わりますが RewriteRuleの方は変わりません。

テーマを自作する際には参考にどうぞ。


Comments closed