固定ページにはPHPコードではなくショートコードを利用する!

こんにちは!

以前、固定ページでPHPコードを使用する時は「Exec-PHP」のプラグインを使用していたのですが、セキュリティ的に問題があるとのことだったので「Exec-PHP」の使用をやめ、代わりに「ショートコード」を利用するようになりました。

「ショートコード」を利用することにより「Exec-PHP」を使用している時よりも、セキュリティ的にも安全ですし、メンテナンス部分も改善され使い勝手も良いので、今回は「ショートコード」の利用方法について記事にしたいと思います。

なぜ「Exec-PHP」は危険なのか?

「Exec-PHP」プラグインは「eval()」という関数を使用していて、この関数の使用には細心の注意が必要です。

【PHPマニュアル 引用】
警告 eval() は非常に危険な言語構造です。 というのも、任意の PHP コードを実行できてしまうからです。 これを使うことはおすすめしません。 いろいろ検討した結果どうしても使わざるを得なくなった場合は、細心の注意を払って使いましょう。 ユーザーから受け取ったデータをそのまま渡してはいけません。 渡す前に、適切な検証が必要です。

プラグインのページで確認すると、最終アップデートが2009年になっています。これはWordPressにショートコードの機能が搭載されたので、作者自体がショートコードの機能を利用するようになったのではないかと考えられます。

2009年からアップデートされていないプラグインを使用するのは、ちょっと怖いですね。

「ショートコード」とは?

いきなり「ショートコード」と言われても、何のことか分からない方がおられると思いますので、簡単に説明します。

「ショートコード」とは、「functions.php」に関数を記述して、投稿記事内の表示したい箇所に[ショートコード名]を記述することで、「functions.php」内で設定しておいた関数を呼び出すことができる機能です。

↓固定ページ内では以下のように記述します。例) ショートコード名が「test」の場合。

次に実際に「ショートコード」を使用してみたいと思います。

「ショートコード」の使い方!

「functions.php」にコードを追加!

↓「functions.php」に以下のコードを追加してみてください。

function test_shortcode() {
  return "ショートコードの表示テストです。";
}
add_shortcode('test', 'test_shortcode');

「add_shortcode」で「ショートコード名」と呼び出す「関数名」を指定してください。上記では「ショートコード名」が「test」、「関数名」が「test_shortcode」になります。

固定ページでショートコードの呼び出し!

↓「functions.php」で設定した「ショートコード」を固定ページで呼び出してみたいと思います。投稿欄に「test」と記述することで、画面には「functions.php」で設定した文章が表示されます。

上記は簡単な例ですが、固定ページに表示できることが確認できたと思います。

テーマ内のファイルに記述!

↓固定ページだけでなく、テーマ内のファイルにも「ショートコード」を記述できます。

<?php echo do_shortcode('[test]'); ?>

「do_shortcode()」というのは、「ショートコード」を実行するWordPressの関数になります。引数で渡された文字列内に実行したい「ショートコード」を記述してください。

ウィジェットに表示する!

↓固定ページだけでなく、テーマ内のフ

ウィジェットにも「ショートコード」を記述することができます。

↓「functions.php」に以下のコードを追加してください。

add_filter('widget_text', 'do_shortcode');

これでウィジェット内に「ショートコード名」を記述すれば、表示されます。

最後に!

「ショートコード」と聞いて、難しいイメージを持たれる方が多いのですが、いざ設定してみると思っていたより簡単だったのではないでしょうか?

今回、ご紹介したのは基本のみです。他にも「ショートコード」には色々な使い方があります。ご自身のサイトのカスタマイズに合わせて、「ショートコード」を使っていきましょう。

以上「固定ページにはPHPコードではなくショートコードを利用する!」でした!

それではまた。

コメント