【WordPress】超便利! 関数を呼び出すショートコードの使い方

こんにちは! ライターのナナミです。

WordPressの固定ページ、管理画面で編集できて便利ですよね。

しかし、固定ページなどではPHPのコードを動かすことができません

でも固定ページでコードを使いたい…
同じような記述だから繰り返し使いたい…

そんなときは、ショートコードを使いましょう!

ということで、今回はショートコードについての記事となります。

この記事は下記の流れで進めていきますね。

【基礎】ショートコードとは何か
【基礎】ショートコードの使い方
【発展】コピペで使えるショートコード
【発展】プラグインで設定しよう

ショートコードを使えるようになって、カスタマイズを楽チンにしちゃいましょう!

目次

ショートコードとは?

ショートコードとは、WordPressで使えるコードの呼び出し機能です。

functions.phpに書いた記述を、固定ページや投稿などで呼び出すことができます。

short_code1

固定ページや投稿では、PHPの処理を行なうことができません
しかしショートコードで呼び出すようにすれば、使うことができるのです。

ショートコードの使い方

ショートコードの元となるコードは、functions.phpというファイルに記述していきます。
これは、WordPressのサイトやブログを表示する際、かなり重要なファイルです。

しっかりバックアップを取り、下記の手順で設定していきましょう。

functions.phpに記述を書こう

まずはどんなコードを呼び出したいかを考えていきましょう。

【例】
・ページタイトルを自動的に出したい
・パーマリンクを表示したい
・所々に同じデザインのボタンを入れたい などなど…

今回は例として、ページのタイトルを自動的に取得して表示するコードで説明していきます。

下記のようなコードですね。

PHP

function testFunc() {
    ob_start();
    echo the_title();
    return ob_get_clean();
}

このコードについてもっと詳しく知りたい方は、下記の記事を読んでみてください。

the_title()について
WordPress Codex 日本語版 テンプレートタグ/the title

ob_start()とob_get_clean()について
WordPressのショートコードの表示位置が上に来てしまう問題を解決

ショートコードを定義しよう

呼び出したいコードだけ書いても、まだショートコードの設定ができていない状態です。
add_shortcode()を使って、ショートコードを定義していきましょう。

下記のように、

add_shortcode('ショートコード名', '使用するfunction名')

の書式で書いていきます。

PHP

function testFunc() {
    ob_start();
    echo the_title();
    return ob_get_clean();
}
add_shortcode('test', 'testFunc');

これで設定はOKです。

投稿画面でショートコードを呼び出そう

ここまで来ればあとは簡単!
下記のように投稿画面に書けば、ショートコードを呼び出すことができます。

[ショートコード名]

実際に使ってみると…

short_code2

エディタ

ショートコードでタイトル表示:[test]

タイトルが表示されましたね!

コピペで使える!使えるショートコードまとめ

ショートコードの設定方法はわかったけど、どう使えばいいのかわからない…
設定が難しくて、自分じゃ使えないかも…

そんなお悩みはコピペで解決!
使えそうなショートコードをいくつか用意してみました。

そのまま使ってもよし、これを元に調整するもよし。
自由に使っちゃってくださいね。

パーマリンクを取得する

PHP

function pagelinkFunc ( $atts ) {
    extract( shortcode_atts( array(
        'id' => '',
    ), $atts ) );
    return get_permalink( $atts[id] );
}
add_shortcode('pagelink', 'pagelinkFunc');

ショートコード

[pagelink id=投稿ID]

これでパーマリンクを取得できるので、記事内の内部リンクも楽チンです。
IDの部分には記事IDを入れてくださいね。

IDなどを指定できるショートコードについて、もっと詳しく知りたい方は、下記の記事をご覧ください。

>>ショートコードの設定色々

パンくずを表示する

PHP

function breadcrumbFunc() {
    //変数を作成
    $bread = '';
    // インデックスページかを判定
    if ( !is_home() ) {
        // ホームのリンクを変数に入れる
        $bread .= '<a href="'. home_url( '/' ). '">ホーム</a>';
        // カテゴリーアーカイブか投稿ページが表示されているかを判定
        if ( is_category() || is_single() ) {
            // 矢印">"を変数へ入れる
            $bread .= " > ";
            // カテゴリを取得して変数へ入れる
            $cat = get_the_category();
            $bread .= '<a href="'. get_category_link( $cat[0]->term_id ).'">'.$cat[0]->name.'</a>';
            // 投稿ページが表示されているかを判定
            if ( is_single() ) {
                // 矢印">"を変数へ入れる
                $bread .= " > ";
                // 投稿タイトルを変数へ入れる
                $bread .= get_the_title();
            }
        // 固定ページが表示されているかを判定
        } elseif ( is_page() ) {
            // 矢印">"を変数へ入れる
            $bread .= " > ";
            // 固定ページのタイトルを変数へ入れる
            $bread .= get_the_title();
        }
    }
    return $bread;
}
add_shortcode('breadCrumb', 'breadcrumbFunc');

ショートコード

[breadCrumb]

パンくずナビゲーション、とっても便利なのですが、いちいち各ページ分用意するのは大変ですよね。
そんな時は、そのページがどのような種類のページかを判定して、勝手に生成されるようにしちゃいましょう。

今回はシンプルなパンくずのコードを用意してみました。
これをペタッと貼れば、あとはCSSで見栄えを整えてあげればOKです。

楽チンですね!

もっと簡単に!プラグインで設定しよう

使い方はわかったんだけど、functions.phpをいじるのが怖い…
使い方は難しくてわからないんだけど、もっと自由に簡単に設定できる方法が知りたい…

そんな方もご安心ください。
WordPressの魅力は、何と言っても豊富なプラグイン

もちろん、ショートコードを設定するプラグインも存在しています。
いくつかご紹介していきますね。

Shortcodes Ultimate

https://ja.wordpress.org/plugins/shortcodes-ultimate/

色々なショートコードを用意してくれているプラグインです。

functions.phpへの記述が不要どころか、コードを書く必要はありません

使いたいショートコードを選んで、記事に記述するだけで使えちゃいます。

Post Snippets

https://ja.wordpress.org/plugins/post-snippets/

各項目に必要な内容を記述するだけで、自由に簡単にショートコードを設定できます

管理画面で設定するだけなので、functions.phpに書くよりも気軽にできる上、管理も楽チンですね。

まとめ

いかがでしたか?

ショートコードが使えるようになるだけで、今までよりももっと便利に、楽しくWordPressを使うことができます
ぜひ自分にあった方法で実装して、バンバン活用しちゃってください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次