WordPressサイドバーウィジェットではphpは使えない!その理由は

こんにちは、キリカブです。
今日は初歩的なミスの話です。
Wordpressのサイドバーにソーシャルメディアのシェアボタンを入れたのに、うまく働かない体験をした時のことです。
ポップアップボタンは開いてすぐ閉じてしまう…、phpで出力したタイトルがそのままphpで表示されてしまうなどの問題が続出していました。
どう
サイドバーに各記事ページのシェアボタン(フェイスブック・ツイッター、グーグルプラス)を、フッターにはトップページのシェアボタンを入れていました。フッターの方は何の問題もなく作動していたのですが…
ググっても役に立つ情報は何も出てこない…あせりました。そこで取った対処法がこれらの方法でした。
取った対策その①テンプレートタグを変えてみる
snsのurlやタイトルをエンコードして取得して出力するphpのタグ <?php echo urlencode(get_the_permalink()); ?>を変えてみました。urlをエンコードする”urlencode”を削除してみたり、 <?php get_the_permalink(); ?>に変更してみたりしました。
結果は、特に何も変わりませんでした。
取った対策その②cssを変更してみる
FBのヘルプページで、cssのoverflowがhiddenになっていると、ポップアップが表示されないことがあるとのこと。
フェイスブックのポップアップがまさにその状態だったので、これだ!と思いさっそくcssに body{overflow:hidden;} あるいは html{overflow:hidden;} を入れてみました。がやはり表示されず…
取った対策その③プラグインを停止
WordPressプラグインのAll in one seo packaを入れており、ソーシャルメディアのアカウント設定などをしていました。
このプラグインが何か影響を及ぼしているのかもと思い、プラグインを停止して試してみましたが、何も変わりませんでした。
原因はこんな初歩的なミスだった!
その後四苦八苦し、人に聞くなどして判明した原因は、とても単純明快でした。それは基本的に
「ウィジェットではphpは使えない」ということ。
そう、私は管理画面から編集するウィジェットに、phpを挿入していたのでした。
ウィジェットに限らず、管理画面から編集する記事ページには、phpは使えません。
htmlタグを生成するphpタグが使えなかったため、ポップアップがすぐ閉じたり、phpタグがテキストとして出力されてしまっていたのでした。(※プラグインを使用したり、functions.phpにショートコードの設定をすれば使えます)
がっかりすると同時に1つの教訓が生まれました。それはググっても何も出てこない場合、誰も書かないようなショボいことが原因であるということ。
みなさんもショボいことでつまづいていませんか?その場合は、基本的な事項の確認からはじめてみましょう。
Wp記事投稿やウィジェットでphpを実行するには
先述のように、プラグインを使用したり、functions.phpにショートコードの設定をすれば、Woedpressの記事投稿画面やウィジェットでもphpが使えます。
その方法をメモしておきますね。
●プラグイン
記事投稿ページ、ウィジェットでphpを実行できるexec-php
インストールの方法などはこちら
●ショートコードの設定
WordPress投稿にPHPを記述するショートコードの使い方 エス技研