WordPressのサイドバーに画像バナーを挿入しようとした場合、
メディアライブラリに画像をアップロードして、その画像のURLを
テキストウィジェット内にimgタグで書けばそれでOKなのですけども
ローカル開発環境で作業していて、それをやってしまうと本サーバに移動した場合
一つ一つドメインを書き換えるとかすさまじく面倒くさそうに思えまして・・・
んじゃテキストウィジェットからテーマディレクトリに置いてある画像パスを
そのまま設置すりゃいいやん、とも思ったのですけども
テキストウィジェット上でphpを動かそうと思うとPHP Code Widgetなどの
プラグインを使わなければならないのですよ。
なるべくプラグインなども使いたくないので、なんとかならんかいねと思い検索してると
ショートコードを作っておいて、それをテキストウィジェットに書けば良いんじゃと
思いつきました。
まずfunctions.phpに以下を追加。
function shortcode_templateurl() { return get_bloginfo('stylesheet_directory'); } add_shortcode('template_url', 'shortcode_templateurl');
これで[template_url]というショートコードを登録できます。
今回は子テーマのディレクトリを取得したいのでbloginfoはstylesheet_directoryを使用。
そして以下のコードをfunctions.phpに追加すると
ウィジェット内でショートコードが使えるようになります。
add_filter('widget_text','do_shortcode');
これでテキストウィジェットに以下の様に書いてあげればOKです。
<img src="[template_url]/img/side_banner.png" class="banner">
これで忘れなくてすむぞ(こればっかりや)