WordPress制作、カスタマイズ、Webシステム開発とSEO対策

ウィジェットの中でもショートコードを使う方法

WordPressを使っていると、ウィジェットの中でも何か動的な処理をしたくなるケースが割りとよく出てきます。
そんなとき、『PHP Widget』などのプラグインを利用して、テキストウィジェットの代わりに、PHPが実行できるウィジェットを使うのもひとつの手です。

でも、それよりその処理をfunctions.phpに書いて、ショートコードで呼び出したほうがセキュリティ的にも安心ですし、運用も手軽で応用が利きますよ!
ショートコードなら、例えばContact Form7でミニフォームをサイドバーに設置したりもできます。

では、テキストウィジェットの中でショートコードを利用する方法は?


これが意外と簡単なんです。

WordPress関数で「do_shortcode」というものが用意されているので、フィルター「widget_text」にそれを引っ掛けるだけです。

具体的には、これをfunctions.phpのどこかに書けばOK。

// テキストウィジェットでショートコードを使用する
add_filter('widget_text', 'do_shortcode');

具体例

それでは実際の使用例を紹介します。
このサイトではサイドバーにプロフィールを表示していますが、そこで年齢を表示してみましょう。

まず、年齢を出力する関数を定義し、それをショートコードに登録します。

/*                                                                                                                           
  年齢を計算する                                                                                                             
*/                                                                                                                           
function return_myage(){                                                                                                     
    $now = date('Ymd');
    $birthday = "19771201";                                                                                                  
    return floor(($now-$birthday)/10000);                                                                                    
}                                                                                                                            
add_shortcode('age', 'return_myage');      

↑これで、[age]で年齢が表示されるようになりました。

先ほどの

// テキストウィジェットでショートコードを使用する
add_filter('widget_text', 'do_shortcode');

も忘れずに挿入しておきます。

これでテキストウィジェットで

1977年生まれ。[age]歳。

と書けば、年齢が出力されるようになりました。
ほらできた!

色々と応用出来るテクニックですね。

コメントを残す