WordPressのショートコードとは

WordPressのショートコードとは複雑な処理を角括弧 []で括られた短いコードにして呼び出せるようにしたものです。

多くのテーマでショートコードを用いて独自の機能をおこなえるようになっています。

WordPressのショートコード

WordPressのショートコードは複雑で何度も使うような処理を角括弧 []でくくられた短いコードに置き換えて呼び出せるようにしたものです。

[ショートコード名]
[ショートコード名 パラメータ1,パラメータ2...]
[ショートコード名 パラメータ1,パラメータ2...]表示する文字列等[/ショートコード名]

ショートコードのメリット

WordPressショートコードのメリットは何といっても複雑な処理が簡単に呼び出すことができるようになることです。

たとえば先ほどのContact Form 7プラグインで作成して使用しているショートコードも実際にPHPで書けばものすごく複雑なコードになり、それを呼び出す部分もPHPで書くことになりますが、ショートコードがあるおかげで角括弧 []で括られた短いコードにして呼び出せます。

次のメリットとしては何度も同じ処理(コンテンツの一部やコンテンツの装飾など)を複数の個所で書く場合にショートコードにしておけば短く書くことができますし、修正する際も元のコードを直すだけですべてのソートコードを利用している部分が同時に修正されます。

ショートコードのデメリット

そんな素晴らしいショートコードですがのデメリットもいくつかあります。

まず、ショートコードの作成はPHPという言語でfunctions.phpにプログラミングする必要があります。

PHPを覚えないといけないですし、functions.phpはミスが発生すると最悪、WordPressのサイトが真っ白な画面を表示してしまい、最悪WordPressの管理画面にもログインできなくなってしまいます。

functions.phpの編集はSnippetsプラグインなどの直接functions.phpを編集することがないようなプラグインの導入をおすすめします。

https://lightgauge.net/build-site/wp/snippets-plugin

また、テーマごとに利用できるショートコードが異なり、テーマの変更をした際に大幅な修正が必要になることがあります。

ショートコードの作り方

WordPressのショートコードはテーマファイルにあるfunctions.phpにPHPというプログラミング言語を用いて作成します。

作成するプログラムは実際に行うことによって複雑であったり比較的簡素になったりします。

ここではよくある「Hello World!!」を表示するショートコードを作成してみます。

まず、WordPress管理画面の「外観⇒テーマエディター」を選択します。

表示された右端に「テーマファイル」と書かれた箇所があり、そこにある「functions.php」を選択します。

表示されたソースコードに以下のコードを追加します。

//ショートコードで「Hello World!!」と出力する
function func_say_hello() {
    return "Hello World!!";
}
add_shortcode('short_code_say_hello', 'func_say_hello');

ここまで記述したらファイルを保存します。

ソースの意味は

  1. add_shortcode関数で「short_code_say_hello」という名前のショートコードを登録し、ショートコードを呼び出された時にfunc_say_hello関数を実行してください。
  2. func_say_hello関数は実行されたら画面にHello World!!という文字列を表示(実際はショートコードが書かれた部分に表示)します。

ということです。

これでコンテンツの表示させたい部分に「[short_code_say_hello]」と書けばそこに「Hello World!!」と表示されるようになります。

※functions.phpを編集する際はバックアップを必ず取って、細心の注意を払ってコーディングしてください。

まとめ

WordPressのショートコードを使えば複雑な処理も簡単に何度でも呼び出せるようになり便利です。

特に最近ではテーマ独自で数多くのショートコードを実装し、記事の執筆を楽にできるようになっているものが増えています。

また、ショートコードは自分でも作成できるので、何度も同じ処理を複数個所に記述する場合はショートコードにして登録してみるのも一つの手ですね。

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