WordPressのショートコードを自作する
こんにちは、ケイジです。ウェブ制作ひと筋15年。WordPressのカスタマイズなどでご飯を食べてます。
今回はWordPressでショートコードを自作する方法を見ていきます。
ショートコードとは?
ショートコードとは複雑な処理を一行で出力するコードになります。
一般的にはfunctions.phpやプラグインに関数を記述し、WordPressの投稿画面などにショートコードを記載して呼び出すものになります。
基本的にWordPress関数はCodexに説明されてます。
PHPに詳しい人はそっちを見ましょう。
この記事では具体的にショートコード追加をするにはどのようにするか、サンプルコードを載せていきます。
WordPressのショートコードを自作する
最も簡単なショートコード例
functions.php
function hello_func() {
return "Hello, Tokyo!";
}
add_shortcode('hello', 'hello_func');
投稿画面
[hello]
画面表示
Hello, Tokyo!
引数を1つ与えたショートコード
functions.php
function hello_func($atts) {
$atts = shortcode_atts( array(
'region' => 'Tokyo', // ←引数初期値。引数に何も指定しない場合はTokyoになります
), $atts, 'hello' );
return 'Hello, ' . $region . '!';
}
add_shortcode('hello', 'hello_func');
投稿画面
[hello region="Los Angels"]
画面表示
Hello, Los Angels!
引数を複数与えたショートコード
functions.php
function hello_func($atts) {
$atts = shortcode_atts( array(
'greeting' => 'Hello',
'region' => 'Tokyo',
), $atts, 'hello' );
return $greeting . ', ' . $region . '!';
}
add_shortcode('hello', 'hello_func');
投稿画面
[hello greeting="Good Morning", region="Hong Kong"]
画面表示
Good Morning, Hong Kong!
引数を囲んだ形態のショートコード
functions.php
function hello_func($atts, $content = "") {
return 'Hello, ' . $content;
}
add_shortcode('hello', 'hello_func');
投稿画面
[hello]Greetings to you![/hello]
画面表示
Hello, Greetings to you!
テンプレートからショートコードを実行することもできます。投稿画面への記載方法とは書式が異なります。
<?php echo do_shortcode('[hello]'); ?>
今回はここまで。
よいWordPressライフを!