WordPress のウィジェットには、人気記事やプロフィール、広告など様々な種類があり、サイドバーなど好きな場所を指定してページに配置できます。
![WordPress ウィジェットページ(メニュー外観→ウィジェット)で表示したいウィジェットを好きな場所を選んで配置できます。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-ウィジェットページメニュー外観→ウィジェットで表示したいウィジェットを好きな場所を選んで配置できます。-1024x497.png)
PHP コードの処理結果を表示できれば、動的な情報を手軽に表示することができ便利です。
今回は WordPress のテキストウィジェットに記述した PHP の処理結果を表示する手順を紹介します。
functions.php へのコードの追加
テキストウィジェットは PHP コードの処理結果は表示しません。
そこで、 functions.php に次のコードを追加し、テキストウィジェットが PHP コードを処理し、それを表示できるように機能を追加します。
子テーマの functions.php にコードを追加
以前に紹介したようにテーマファイルは子テーマを編集する方が安全なので、そちらの functions.php に追記します。
筆者は無料テーマ Cocoon を使っているので、その子テーマとして提供されている Cocoon Child の functions.php にコードを追記します。
※ functions.php に問題が起きるとサイトや WordPress 自体が正しく動作しなくなる可能性があります。子テーマを用いたり、バックアップをとってから編集するようにしましょう。
参照:WordPressのウィジェットでPHPコードを実行する方法 – FOXWP
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 );
![WordPress 子テーマ(Cocoon Child)の functions.php にコードを追加し更新します。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-子テーマCocoon-Childの-functions.php-にコードを追加し更新します。-1024x564.png)
テキストブロックに PHP コードを設定しサイト名などを表示
今回は試しに、サイドバーに追加したテキストウィジェットにサイト名とキャッチフレーズを表示します。
サイト名などを表示する PHP コード
サイト名とキャッチフレーズは get_bloginfo 関数で取得できます。
参照:サイトのタイトルやキャッチフレーズを取得・表示・変更する | The WordPress Press
<?php
$site_title = get_bloginfo( 'name' );
$site_desc = get_bloginfo( 'description' );
?>
同じ get_bloginfo という関数に渡す文字列を変えることで得るデータが変わります。
name を指定するとサイトのタイトル、description を指定するとキャッチフレーズを取得できます。
これらの設定は、メニュー [設定]→[一般] で一般設定ページを開き、タイトルとキャッチフレーズの項目で確認・編集できます。
![WordPress メニュー設定→一般を選択し一般設定ページを開くとタイトルやキャッチフレーズを設定できます。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-メニュー設定→一般を選択し一般設定ページを開くとタイトルやキャッチフレーズを設定できます。-1024x577.png)
テキストウィジェットをサイドバーに追加
メニュー [外観] → [ウィジェット] を選択しウィジェットページを表示します。
テキストウィジェットを探し、選択します。
テキストウィジェットを配置したい場所を選択してウィジェットを追加ボタンを押します。
![WordPress メニュー外観→ウィジェットで、テキストウィジェットを選択し、今回はサイドバーにウィジェットを追加します。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-メニュー外観→ウィジェットで、テキストウィジェットを選択し、今回はサイドバーにウィジェットを追加します。.png)
サイドバーにテキストウィジェットを追加すると、内容を編集できます。
![WordPress テキストウィジェットをサイドバーに追加するとサイドバーにテキストウィジェットの編集画面が表示されます。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-テキストウィジェットをサイドバーに追加するとサイドバーにテキストウィジェットの編集画面が表示されます。.png)
テキストタブにして以下のコードを入力し保存しました。
<?php
$site_title = get_bloginfo( 'name' );
$site_desc = get_bloginfo( 'description' );
?>
<p>
<?php echo 'キャッチフレーズ', $site_desc; ?><br/>
<?php echo 'サイト名', $site_title; ?><br/>
</p>
PHP コードなどにエラーがある場合は、配置されたテキストウィジェット内でエラーメッセージが表示されます。
![WordPress テキストウィジェットを配置しても PHP コードに問題があるとエラーメッセージが表示されます。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-テキストウィジェットを配置しても-PHP-コードに問題があるとエラーメッセージが表示されます。-1024x737.png)
コードを修正すると PHP 関数で取得したサイト名とキャッチフレーズが表示されました。
![WordPress 追加したテキストウィジェットに PHP 関数から取得したサイト名とキャッチフレーズが表示されました。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-追加したテキストウィジェットに-PHP-関数から取得したサイト名とキャッチフレーズが表示されました。-1024x301.png)
追加したテキストウィジェットの削除
追加したテキストウィジェットを削除する場合は、メニュー[外観] → [ウィジェット] でウィジェットページを開き、追加した場所(今回ならばサイドバー)のテキストウィジェットの左下の削除ボタンを押すと表示を削除できます。
![WordPress テキストウィジェットをサイドバーから消したい場合は、テキストウィジェットの編集枠の左下の削除ボタンを押します。](https://compota-soft.work/wp1/wp-content/uploads/2023/03/WordPress-テキストウィジェットをサイドバーから消したい場合は、テキストウィジェットの編集枠の左下の削除ボタンを押します。.png)
まとめ
今回は、WordPress の子テーマで functions.php にコードを追記し、テキストウィジェットで PHP の処理結果を表示する手順を紹介しました。
ウィジェットは各ページのサイドバーなどに表示でき、 PHP を用いることで、動的なデータや WordPress に設定しているデータを表示することができます。
参照サイト Thank You!
- ブログから大規模サイトまで作れる CMS | WordPress.org 日本語
- Cocoon | WordPress無料テーマ
- WordPressのウィジェットでPHPコードを実行する方法 – FOXWP
- サイトのタイトルやキャッチフレーズを取得・表示・変更する | The WordPress Press
記事一覧 → Compota-Soft-Press
コメント