WordPressのウィジェットでショートコードを実行できるようにするための手順

公開日:2019/04/30 更新日:2019/04/30
WordPressのウィジェットでショートコードを実行できるようにするための手順のサムネイル

はじめに

WordPressのショートコードをウィジェットで使用したい場合、テキストウィジェットとカスタムHTMLウィジェットでショートコードを動作させることができます。この記事では、テキストウィジェットとカスタムHTMLウィジェットそれぞれの場合にショートコードを実行できるようにするための手順をメモします。

前提と環境

WordPressのバージョンは4.9以降とします。

できるようになること

テキストウィジェット、もしくはカスタムHTMLウィジェットにショートコードをそのまま貼り付けて実行できるようになります。

テキストウィジェットでショートコードを使う

WordPressのバージョン4.9以降では、テキストウィジェットでのショートコードの実行がデフォルトで可能となっています。すなわち、何もせずとも単純にショートコードを以下のように貼り付けるだけで完了です。貼り付けたら忘れずに「保存」をクリックしてください。

text-widget.png

元々はテキストウィジェットでショートコードを実行するには、function.phpに処理を追記したりプラグインを導入したりする必要がありました。そのため、インターネット上で検索するとテキストウィジェットでショートコードを実行するための方法として色々と情報が出ている状況ですが、WordPressのバージョン4.9以降では不要となりました。以下にWordPressの公式メッセージが記載されています。

make.wordpress.org

On the heels of adding TinyMCE rich editing to the Text widget and the media widgets in 4.8, there are another round of improvements coming to the Text widget and Video widget in 4.9, among other i…

以下は該当部分の引用になります。

One very longstanding request—for over 8 years—has been to support shortcodes in the Text widget (#10457). This is finally implemented in WordPress 4.9. It is no longer required to have plugins and themes do add_filter( 'widget_text', 'do_shortcode' ).

wordpress.orgwordpress.org

しかし、カスタムHTMLはバージョン4.9以降もデフォルトでショートコードの実行には対応していません。

カスタムHTMLでショートコードを使う

カスタムHTMLでショートコードを使うためには、以下の1行をfunction.phpに追記します。追記する場所は他の関数内とかでなければどこでも問題ありません。

function.php
add_filter( 'widget_text', 'do_shortcode' );

上記をfunction.phpに追記したら後はテキストウィジェットと同様に以下のように貼り付けるだけでショートコードを実行できるようになります。

custome-html.png

この手順については、他のサイト様にもあるように以前と変わらず有効です。function.phpを修正できない、したくない場合は、プラグインの導入によっても可能です。

まとめ

私自身WordPress4.9以降ではテキストウィジェットがデフォルトでショートコードの実行に対応していたことを知りませんでした。WordPressに限らずですが、最新の公式情報を日頃から追っていくことの重要性を感じました。

関連記事

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。