ハナモゲラボ / 試行錯誤の実験人生

日々、PCや各種デバイス、楽器等に翻弄されながら電脳の森をさまよう男の日常と様々な実験をさらりと記しております。

[WordPress]ウィジェットでショートコードを使えるようにする方法

May 21 2015

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="&#91;template_url&#93;/img/side_banner.png" class="banner">

これで忘れなくてすむぞ(こればっかりや)

| Posted in Wordpress | Comments (0)

Post a Comment

※メールアドレス、URLは任意入力です。メールアドレスは入力しても公開されません。

« Mar 2017 April 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30