WordPress テキストウィジェットで PHP 処理結果を表示する

WordPress のウィジェットには、人気記事やプロフィール、広告など様々な種類があり、サイドバーなど好きな場所を指定してページに配置できます。

WordPress ウィジェットページ(メニュー外観→ウィジェット)で表示したいウィジェットを好きな場所を選んで配置できます。

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 にコードを追加し更新します。

テキストブロックに PHP コードを設定しサイト名などを表示

今回は試しに、サイドバーに追加したテキストウィジェットにサイト名とキャッチフレーズを表示します。

サイト名などを表示する PHP コード

サイト名とキャッチフレーズは get_bloginfo 関数で取得できます。
参照:サイトのタイトルやキャッチフレーズを取得・表示・変更する | The WordPress Press

<?php 
  $site_title = get_bloginfo( 'name' );
  $site_desc  = get_bloginfo( 'description' );
?>

同じ get_bloginfo という関数に渡す文字列を変えることで得るデータが変わります。
name を指定するとサイトのタイトル、description を指定するとキャッチフレーズを取得できます。
これらの設定は、メニュー [設定]→[一般] で一般設定ページを開き、タイトルとキャッチフレーズの項目で確認・編集できます。

WordPress メニュー設定→一般を選択し一般設定ページを開くとタイトルやキャッチフレーズを設定できます。

テキストウィジェットをサイドバーに追加

メニュー [外観] → [ウィジェット] を選択しウィジェットページを表示します。
テキストウィジェットを探し、選択します。
テキストウィジェットを配置したい場所を選択してウィジェットを追加ボタンを押します。

WordPress メニュー外観→ウィジェットで、テキストウィジェットを選択し、今回はサイドバーにウィジェットを追加します。

サイドバーにテキストウィジェットを追加すると、内容を編集できます。

WordPress テキストウィジェットをサイドバーに追加するとサイドバーにテキストウィジェットの編集画面が表示されます。

テキストタブにして以下のコードを入力し保存しました。

<?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 コードに問題があるとエラーメッセージが表示されます。

コードを修正すると PHP 関数で取得したサイト名とキャッチフレーズが表示されました。

WordPress 追加したテキストウィジェットに PHP 関数から取得したサイト名とキャッチフレーズが表示されました。

追加したテキストウィジェットの削除

追加したテキストウィジェットを削除する場合は、メニュー[外観] → [ウィジェット] でウィジェットページを開き、追加した場所(今回ならばサイドバー)のテキストウィジェットの左下の削除ボタンを押すと表示を削除できます。

WordPress テキストウィジェットをサイドバーから消したい場合は、テキストウィジェットの編集枠の左下の削除ボタンを押します。

まとめ

今回は、WordPress の子テーマで functions.php にコードを追記し、テキストウィジェットで PHP の処理結果を表示する手順を紹介しました。
ウィジェットは各ページのサイドバーなどに表示でき、 PHP を用いることで、動的なデータや WordPress に設定しているデータを表示することができます。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました