誰もが秘めている「才能」を開花し大好きなことを実現しよう Let's Share and Creation!

プラグインなしでWordPressウィジェットにPHPコードを反映させる方法

Photo by Luca Bravo on Unsplash

Photo by Luca Bravo on Unsplash

Advertisement

 

Advertisement

WordPress4.9へのアップデートで使えなくなってしまいました

 

【2018/01/15追記】

WordPress4.9へのアップデートにより、ウィジェットのカスタムHTMLに行数とチェッカーが表示されるようになりました。これにより「<」などの特殊記号に警告が出るようになってしまいPHPを直接書いて保存することができなくなりました。

 

 

また、下記のプログラムには不正なコードを引き渡す攻撃がなされる恐れのあるeval関数というプログラムが使われており、他の関数での代替を模索していましたが、WP4.9へのアップデートによるカスタムHTMLへの仕様の変更によりこれも保留せざるを得なくなりました。

引き続きウィジェットでPHPコードを使う際は代わりの最新プラグインとしてPHP Everywhereの利用をお願いします。

PHP Everywhere
Price: Free

 

【2018/01/15追記】

 

 

WordPressではphpコードをウィジェットに書いても適用されません。なので、「PHP Code Widget」などのプラグインを入れる必要があります。

PHP Code Widget — WordPress プラグイン

 

しかし、これらのプラグインは長らく更新されていなかったりしますのでセキュリティ上危険なこともあります。また、プラグインをたくさん入れるとサイトが重くなってしまうので、プラグインは極力入れずに運用したいものです。

 

WordPressはfunction.phpにプログラムを記入することで新しい機能を追加することができます。

 

まずは、function.phpのバックアップを取り、function.phpを開きます。

子テーマを利用している方は、子テーマのfunction.phpを開いてください。

 

次に、function.phpの一番下の行(?>の前)に以下の記述を追加します。

 

 

「ejecutarPHP」という機能を追加することで、ウィジェットのテキストにPHPコードを適用することができるようになります。

早速ウィジェットにPHPコードを追加してみましょう。

 

 

ウィジェットの「カスタム HTML」にPHPコードを記入してみよう

 

外観→ウィジェットにある「カスタム HTML」をサイドバーなどに追加します。

 

この時、「テキスト(任意のテキスト)」ウィジェットは使わないようにしてください。Wordpress4.8にアップグレードされて以降、従来のテキストウィジェットにPHPコードを記述すると文字化けが発生してPHPコードがうまく反映されない現象が起こります。

 

<?php の “<” や “>” が “&lt;” “&gt;”  もしくは “<!–?php  ?–>” となってしまう等

 

なので、Wordpress4.8.1以降に新たに追加された「カスタム HTML」を使用してください。

 

 

なお、カスタム HTMLには自動的に段差を追加する機能がありませんので各自で改行を追加する必要があります。

 

 

カスタム HTML内にPHPコードを書きます。必ずPHPの開始・終了タグ「<?php  ?>」を忘れずに!

 

 

 

保存します。

 

 

 

見事表示されました。

 

これでプラグインを使うことなくテキストウィジェットにPHPコードが実行できるようになります。

WordPressはfunction.phpに関数を記入することで独自の機能が追加できます。

 

function.phpを使いこなせばプラグインを減らすことも可能です。ちなみに私のサイトはこれを導入してプラグインを削除したらサイトの表示が早くなりました。

プラグインの入れすぎでサイトが重いと感じてる方はやっておいて損はないと思います。

 

via: 【WordPress】初心者でもできる! 超簡単な『ユーザー定義関数』を設定してWordPressをもっと便利に使いこなす方法 – ONZE

via: プラグインを使用せず、ワードプレスのウィジェットに PHP コードを実行する方法 | 教授ファルケン

 

Advertisement
by
WEBデザインとプログラマーをやってます。 生まれも育ちもアスペルガーです。心屋仁之助さんの前者後者論を基に誰もが自分を最大限に発揮できる世界を日々実践しています。
プロフィール詳細はこちらから
Follow