WordPressのウィジェットでPHPコードを実行する方法を解説します。
ウィジェットでPHPコードを実行するには、プラグインを使用する方法とfunctions.php
ファイルを編集する方法の2種類があります。
それぞれについて方法を解説していますので、目的に合わせて方法を選択してください。
WordPressのウィジェットでPHPコードを実行する方法
ここではWordPressのウィジェットでPHPコードを実行する方法を解説します。
ウィジェットでPHPコードを実行する方法は、プラグインを「使用するか」「使用しないか」2つの選択肢があります。
それぞれについて解説を行っていきます。
プラグインを使用してPHPコードを実行する方法
ウィジェットでPHPコードを実行できるようにするプラグインには、次のプラグインがあります。
ここでは簡単にプラグインの使い方を解説します。
PHP Code Widgetの使い方
PHP Code Widgetの使い方は次のようなものになります。
- ウィジェットメニューを開く
- ウィジェットエリアにPHP Code Widgetのウィジェットを追加
- ウィジェットにPHPコードを記述
- 保存
プラグインなしでPHPコードを実行する方法
プラグインなしでウィジェットでPHPコードを実行するには、まず次のコードをfunctions.php
ファイルに記載をしましょう。
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コードの実行ができるようになります。
参考ページ:How to Run PHP Codes in WordPress Text Widget
カスタムHTMLウィジェットではPHPコードの記述ができない
WordPressには、テキストを記述できるウィジェトとしてテキストウィジェットの他にカスタムHTMLウィジェットが存在します。
そのため、テキストウィジェットではなく、カスタムHTMLウィジェットでPHPコードの実行ができないのかと考える方がいるはずです。
しかし、カスタムHTMLウィジェットでは、HTMLタグではない「」は、エスケープしないと保存することができません。

それでは、注意にあるようにエスケープをして、保存できるようにしてみましょう。
<?php echo 'test'; ?>
しかし、これはテキストとして、次のようにそのまま出力されるだけで、PHPコードを実行することはできません。

そのため、ウィジェットでPHPコードを実行したい場合は、テキストウィジェットを使用する必要があります。