[WordPress] ショートコードを使い、ブログの名前とurlを表示してみる

WordPress

Nプログラマです。

ブログの固定ページや記事内にブログ名とブログURLを書くことが多くなりました。
その中で、以下の課題が出てきました。

  1. 直接記述は大変(コピー&ペーストであっても)
  2. ブログ名やURLが変更になった時の対応が大変

特に(2)はちょっと面倒な対応になってくるので、ショートコードを使ってブログ名とブログURLを表示できるようにしてみました。

概要

やること

WordPressのショートコードを使い、記事内にブログ名とURLを表示する。

やってみる

準備

ブログの名前とURLの取得方法

ブログの名前とURLを取得するには、get_bloginfo関数を使います。

get_bloginfo( string $show = ”, string $filter = ‘raw’ )

https://developer.wordpress.org/reference/functions/get_bloginfo/

第一引数(show)に取得したい情報を文字列で渡せば、それを返してくれます。
今回はブログ名とURLが欲しいので、以下の文字列を第一引数に渡します。

  • name (ブログ名)
  • url (ブログURL)

ショートコードの登録関数

ショートコードを登録するには、add_shortcode関数を使います。
引数はcallableなので、関数も渡せます。

Function Reference/add shortcode

https://codex.wordpress.org/Function_Reference/add_shortcode

ショートコードを登録する

準備が整ったのでショートコードへ登録していきます。

登録する場所は、使用しているテーマのfunction.phpです。
function.phpはバックアップを取ってから編集しましょう。
登録方法は、無名関数を使う、使わないの両方のパターンで書いてみます。

無名関数を使う

自分はPHP7以上のサーバを使うことが多いので、無名関数をよく使います。
関数名のバッティングや名前を考えなくていいのでこちらを使っています。

// ショートコードを登録(ブログ名を取得)
add_shortcode('bloginfo_name', function() {
    return get_bloginfo('name');  // ブログ名
});

// ショートコードを登録(ブログURLを取得)
add_shortcode('bloginfo_url', function() {
    return get_bloginfo('url');  // ブログURL
});

無名関数を使わない

無名関数を使わない時は、こういう感じになります。
こちらの方がよく見るコードですね。
上記コードと同じ処理になります。

// ブログ名を取得
function sample_get_blog_name() {
    return get_bloginfo('name');  // ブログ名
}
// ショートコードへ登録
add_shortcode('bloginfo_name', 'sample_get_blog_name');

// ブログURLを取得
function sample_get_blog_url() {
    return get_bloginfo('url');  // ブログURL
}
// ショートコードへ登録
add_shortcode('bloginfo_url', 'sample_get_blog_url');

これで2つのショートコードが登録できました。

  • bloginfo_name (ブログ名を取得するショートコード)
  • bloginfo_url (ブログURLを取得するショートコード)

記事内で使う

ショートコードの登録ができたので、これを記事の中で使います。

登録したショートコードを使い、記事内にこのように書いてみます。

[bloginfo_name]  のURLは  [bloginfo_url]  です。

結果はこのようになります。

Nプログラマのメモリア 〜Web系〜  のURLは  https://webprog.nprog256.net  です。

このブログ名とURLが表示されていますね。

見た目では分からないですが、ブログ名とURLは直書きではなくショートコードで出力されたものになっています。

終わり

今回は、WordPressのショートコードを使ってブログ名とURLを記事内に表示しました。

これで安心して記事内にブログ名やURLを記述することができます。
よく使うものは一箇所にまとめておくといいですね。

他にはデータベースから取得した情報を表示する、ということにも使えそうです。

それでは、このへんで。

バイナリー!

タイトルとURLをコピーしました