ショートコードを登録すると、エディター上でいつでも何度でも呼び出すことができるようになる。出力するタイミングが要。ショートコードを作成しながら基本の考え方を学ぶ。
ショートコードのしくみ
ショートコードとは、あらかじめ登録しておいたコードをエディター画面でいつでも好きなタイミングで呼び出すことができる機能のことである。
エディター画面ではPHP入力を行えないので、PHP入力を行いたいときもショートコードの出番である。
ショートコード置換のタイミング
ショートコードは、投稿を呼び出す前のタイミングで、[]
で囲まれた呼び出し文を置換する。
投稿の内容を表示している時に処理されるのではなく、出力の準備をしているタイミングで実行される。
関数の中ではecho
せずに、内容をreturn
するようにする。そうしなければ意図しないタイミングでショートコードが実行されてしまう。
ショートコードを作成する
テキストを出力するショートコードを作成する場合。
コードを記述
functions.phpにショートコード化したいコードを記述する。
7行目でreturn
していると、想定通りに動作する。しかし、次のような良くない記述例もあります。
正しい方法はバッファを返すこと
バッファリング関数のob_start()
とob_get_clean()
の使用が望ましい。
一度出力バッファに出力内容を取得して、最後にバッファを返している。
ob_start()
出力のバッファリングを有効にする(ヘッダ以外の) スクリプトからの出力は実際には行われず、 代わりに内部バッファに保存される
ob_get_clean()
現在のバッファの内容を取得し、出力バッファを削除するob_get_contents() および ob_end_clean() を同時に実行するのと同じ
関数の解説
ショートコード作成では、add_shortcode
という関数を使用する。
add_shortcode( $tag , $func );
$tag | ショートコードにする文字列 |
---|---|
$func | ショートコードが出現した場所で呼び出す関数 |
$tag
はショートコードを呼び出すときのテキスト[$tag]
に、$func
はショートコードを呼び出す関数になる。