WordPressのウィジェットでPHPを利用する方法

eyecatch_562

問題点

テーマにもよるが、通常WordPressのウィジェットでPHPコードが使えなくて不便である。

スポンサーリンク

対処方法

対処方法としては、下記があります。

  1. プラグインを利用する方法
  2. function.phpに追記する
  3. WordPressの標準機能のショートコードを利用する

それぞれ利用目的に合わせて、向き、不向きがありますので、ご注意ください。

プラグインでウィジェットにPHPを利用する

ウィジェットでPHPコードを実行できるようにするプラグインには、PHP Code Widget というプラグインがあります。HTMLコードしか記載できないウィジェットなど、テーマで追加されたウィジェットでは使用できない場合があるので、ご注意ください。

562-001

プラグインをインストールすると、利用できるウィジェットに、「PHP Code」という項目が増えます。こちらをご使用いただくと、直接PHPを記載できるウィジェットが追加できます。

562-002

PHP CODEを追加するとこのようにウィジェットが追加され、テキスト側はPHPコードを追加できます。

function.phpに追記する

function.phpの親テーマか子テーマに下記コードを追加する。

コードの最終行に関しては、もし他の処理とかぶり動作しない場合は、最後の99が優先順位となるので、数字を小さくして優先順位を上げてください。

function widget_text_exec_php( $widget_text ) {
    if( strpos( $widget_text, '<' . '?' ) !== false ) {
        ob_start();
        eval( '?>' . $widget_text );
        $widget_text = ob_get_contents();
        ob_end_clean();
    }
    return $widget_text;
}
add_filter( 'widget_text', 'widget_text_exec_php', 99 );

これで、ビジュアルのウィジェットでは、PHPを入れられませんが、テキストのウィジェットではPHPを使用することができます。タブで、ビジュアルとテキストの選択ができるウィジェットでは、テキストを選択すれば、大丈夫です。

WordPressの標準機能のショートコードを利用する

WordPressのショートコードを利用すれば、ウィジェットの入れたいところにショートコードを入れるだけなので、普段からショートコードを使っている人には利用しやすいかもしれません。テーマによっては、管理画面にショートコードが簡単に編集できるものもありますので、そういうのを使うと楽です。テーマLuxeritasの場合は、最初からショートコードの編集画面があります。

通常のショートコードはfunction.phpに追記となりますが、ショートコードの使い方は今回は省略します。

オススメ記事