エス技研WordPress専科

WordPressの基本的な使い方から SEOの対応、プラグイン情報、カスタマイズ方法を解説します。


WordPress投稿にPHPを記述するショートコードの使い方add_shortcode

      2015/06/14

WordPressの投稿ページで PHPの処理をさせるショートコード

 

WordPressのショートコードとは?

 
WordPressをブログとして日記などを書いている場合は、投稿の中に PHPの処理を記述したいと思う場面はほとんどないと思いますが、CMSとして利用している場合は、PHPの処理を記述したい、と思う場面もあるでしょう。
 
そんな方にとっての記事です。
 
 
WordPressを CMSとして、企業のサイトやサービスサイトを構築している場合は、投稿ページや固定ページとして編集しているページの中には何かしらの処理を実行した情報を表示させたい、という場面に出くわすこともあるでしょう。
 
そんな時に真っ先に思いつくのは、記事を記述する部分に直接 PHPのソースコードを書いて、それが実行されればいいな、という考えです。
 
もちろんそのためのプラグインも用意されています。
投稿記事の中に PHPのスクリプトを埋め込めるようにするプラグインには
 runPHP
 Exec-PHP
 Executable PHP widget
といったものがあります。
 
これを使えば投稿記事の中にも PHPのスクリプトを埋め込むことができ、自由度が格段にアップします。
しかし、自由度がアップするということは、その分セキュリティが甘くなることにもつながりますので、違う方法を考えた方がよさそうなのです。
 
下記のサイトでは面白おかしく書いてありますが、「なぜ PHPを記述するのにプラグインを使うの?」というところに真理があるのではないでしょうか。
 http://wp-d.org/2013/07/10/4931/
 
PHPのコードを記述できる技術がある方であれば、WordPressが本来的に提供している機能を利用するべきでしょう。
 
 
そして、その違う方法が WordPressにはあらかじめ用意されています。
それは、「ショートコード」と言われる仕組みで、add_shortcode関数を記述して利用します。
 
この add_shortcode関数を使ったショートコードの仕組みを使うことで、PHPの処理を呼び出し、結果を表示させることができるようになりますので、投稿ページに直接 PHPのスクリプトを書かなくても PHPの処理を実行させることができる仕組みです。
もちろん、記述できる言語は PHPに限りません。
 
 

ショートコードの使い方

 
ショートコードとは、「functions.php」に関数を作成し、それを add_shortcodeによって呼び出して表示させる仕組みのことです。
 
 
サンプルのコードを作ってみましょう。
 
ショートコードの関数を記述するファイルは「functions.php」になります。
functions.phpが置いてある場所は、下記のファイルになります。

 
functions.phpが置いてある場所については、「WordPressの functions.phpがある場所」に詳しく書いています。
 
 
このファイルに、下記の様に関数を追記します。
ファイル内であればどこに書いても問題ありませんが、一番下あたりに追記しておけば分かりやすいでしょう。
———————————–

———————————–
 
「add_shortcode();」で関数を呼び出し、ショートコードとして処理をする仕様になっていて、下記の様に記述します。
———————————–

———————————–
 
これで、ショートコードを書いたページが表示されると、関数が実行され、その結果をページに表示させることができる、という仕組みです。
 
そして、表示させたい WordPressの投稿ページに下記の様に「add_shortcode」の第 1引数で指定した変数名(shortcode1)を「[ ]」で囲んだものを記述します。

 
これで、「shortcode1Func」の関数で処理された内容が編集されます。
 
 
「[shortcode1]」の記述方法は、例えば「Contact Form 7」などのプラグインを使う場合に、指定されたショートコードをページに編集することでお問い合わせフォームを表示させることができるようになりますので、受け入れやすい仕様だと思います。
 
「Contact Form 7」は、WordPressのメールフォームとして有名なプラグインです。
Contact Form 7使い方詳細解説・WordPressメールフォーム」に記事を書いていますのでこちらも参考にしてください。
 
 


 

ショートコードをもう少し使ってみましょう

 
ショートコードで利用する関数の中でも WordPressの関数も実行できます。
 
例えば、下記の様にブログタイトルにテキストをを追加したものを返すこともできます。
———————————–

———————————–
 
呼び出し方は先ほどの「[shortcode1]」と同じです。
 
 
引数を渡して、引数に応じて処理をさせることもできます。
 
———————————–

———————————–
 
これに対して、下記の様にショートコードを記述することで引数を与えて処理をさせることができます。

 
ショートコードで引数をセットして、そこでセットした変数名を指定して関数の中で変数を受け取る処理となります。
 
「’text1′ => ‘X’,」の「=> ‘X’」の部分は、引数がなかった場合のデフォルト値を設定している部分になります。
デフォルト値を設定していない変数に値が入らなかった場合は、nullで処理され、特にエラーは発生しません。
 
また、下記の様に「=」の前後にスペースを入れたり、変数の順番を変えても問題はありません。
 

 
 

ショートコードをテンプレートで呼び出す方法

 
ショートコードは、そもそも PHPを実行できない投稿ページや固定ページで処理をさせるための仕組みですが、同じ仕組みを使ってテンプレートで実行することも可能です。
 
下記の様にテンプレートファイルに記述することで実行が可能です。
 

 
 

ショートコードをウィジェットに呼び出す方法

 
投稿ページや固定ページに add_shortcodeを使ったショートコードを記述して、PHPの処理が実行できるようになりましたので、そのショートコードを同じようにウィジェットに編集すればウィジェットでも実行できるのだと思っていました。
でも、そのままでは実行できないんですよね。
 
ウィジェットでショートコードを実行する方法は「WordPressのウィジェットでショートコードを使う方法add_filter」に書きましたので、併せてご覧ください。
 
 

ショートコードを使った処理

 
ショートコードは、PHPの関数を実行する処理ですので、どんな処理でも作成することができます。
 
そんなわけで、投稿ページや固定ページに共通して表示したい HTMLをパーツ化して任意のページに表示させる、というショートコードを作ってみました。
 
詳しくは、「WordPress 任意のファイルを読み込むショートコードの処理」を参照ください。
 
 

PHPのソースを宣言するのはショートタグ

 
この記事では WordPressのショートコードの話を書いていますが、PHPのソースコードであることを宣言する「<?php …… ?>」タグを「<? …… ?>」として省略形で記述する方法を「ショートタグ」と言います。
 
ただ似てるっていうだけの話ですが、ショートタグについては「サーバ移転、PHPバージョンアップでPHPのソースコードが表示される・ショートタグのPHPが動かない」に記事を書いていますので、良ければ参考にしてみてください。
(2015.02.26追記)

 - WordPressの基本設定

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload the CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

WordPress管理画面のメニューに項目を追加する方法解説

WordPressの管理画面のメニューに項目を追加する方法をサンプルソースを交えて解説します。

WordPressのアップグレードの英語版と日本語版の公開のタイムラグは?

WordPressのアップグレードの英語版と日本語版の公開のタイムラグについて説明しています。

BackWPupでバックアップ・リストア(復元)の具体的手順

BackWPupその9。バックアップファイルからのリストア(復元)の手順です。

Smart Update PingerでWordPressのPing・更新情報サービスを拡張する

WordPressの Ping機能、更新情報サービスのプラグイン Smart Update Pingerの使い方と問題点。

BackWPupでバックアップ・エラー発生の具体的対処方法事例6

BackWPupその6。エラーが起こったときの対処方法の具体例紹介です。

WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成

WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成する方法を説明しています。

WordPressの高速化でSEO対策!広告費も削減!高速化の施策のまとめ

WordPressを高速化するためのまとめ記事。これまで多様な高速化の対応を行ってきましたが、それを具体的に何をすればいいかが一目でわかるようまとめ記事にしました。

FC2からWordPressに引越。インストールなど必要な全てを解説

FC2からWordPressへの引越し解説。内容は引越しメインではなくこれからWordPressでブログを構築する方向けのブログ構築の解説記事です。

WordPressのスラッグとは?

WordPressのスラッグって何?それを解説している記事です。なんとなく分かっている気になっているものを改めてしっかり確認をしてみませんか?

BackWPupでバックアップ・Jobの設定・保存先の情報設定

BackWPupその3。Jobのバックアップファイルの保存先の設定についての解説。