WordPressのショートコードを自作する

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ライフを!

  • はてなブックマーク
  • Pocketに保存