今回は、「WordPress:ショートコードの作り方」第二弾として、記事のタイトルを表示させるショートコードを作成する方法をご紹介します。
WordPressのショートコードの基本的な作成方法については、前回の記事をご覧ください。
テンプレートタグで記事の情報を取得するショートコードを作成する
前回の記事では、あらかじめ打ち込んだ文字列をそのまま表示させるショートコードを作成しました。
ショートコードをさらに活用するため、WordPressで用意されているテンプレートタグを利用して、記事のタイトルを取得して表示させてみます。
記事のタイトルを表示させるテンプレートタグはget_the_title()
ですので、functions.phpに下記の通りコーディングします。
<?php
function test2_function() {
ob_start(); //出力のバッファリングを有効にする
if (is_page() || is_single()) {
echo get_the_title();
}
$out = ob_get_contents(); //出力用bufferの内容を返す
ob_get_clean(); //出力用バッファを消去する
return $out;
}
add_shortcode('test2','test2_function');
ロジック追加後、WordPressで記事を新規作成してみましょう。
段落に[[test2]]
を入力してプレビューすると、
のように表示されたら成功です。
ショートコードを生成する関数 add_shortcode() の使い方と注意点
最終行のadd_shortcode()
はショートコードを生成する関数です。
一番目の引数:ショートコードの文字列
二番目の引数:ショートコードで実行される関数の名前
functions.phpにショートコードを複数実装している場合、ショートコードが重複してしまうと正しいロジックを実行できなくなってしまうので気を付けましょう。
WordPressで用意されているテンプレートタグについて
今回はget_the_title()
をテンプレートタグの例として取り上げましたが、WordPressには様々なテンプレートタグが用意されていますので、下記ページなどを参考にしてみると良いと思います。