[WordPress] ショートコードを使って、自分のブログ名とURLを表示してみる
Nプログラマ(@Nprog128)です。
Wordpressを使っている時に、プロフィールやプライバシーポリシーなどの文中にブログ名とURLを書くことがあります。
その中で、以下の課題が出てきました。
- (1) 直接記述は大変(コピー&ペーストであっても)
- (2) ブログ名やURLを変更した時に、書き直すを忘れる
(2)の場合は手動で書き直す場合、修正箇所が多いと忘れる箇所が出てきます。
そこで、ショートコードを使ってブログ名とブログURLを表示できるようにしてみました。
準備
ブログの名前とURLの取得方法
ブログの名前とURLを取得するには、WordPressのget_bloginfo関数を使います。
get_bloginfo( string $show = ”, string $filter = ‘raw’ )
第一引数(show)に取得したい情報を文字列で渡せば、それに対応した値を返してくれます。
今回はブログ名とURLが欲しいので、以下の文字列を第一引数に渡します。
引数 | 取得できる情報 |
---|---|
name | ブログ名 |
url | ブログURL |
ショートコードの登録関数
ショートコードを登録するには、add_shortcode関数を使います。
引数はcallableなので、関数も渡せます。
add_shortcode( string $tag, callable $callback )
ブログ名とURLを取得する関数をショートコードに登録する
準備が整ったので、ショートコードへ登録していきます。
使用しているテーマの中にあるfunction.phpに、登録する処理を書いていきます。
function.phpを編集するので、バックアップを取ってから編集しましょう。
登録方法は2通りあります。
今回は、無名関数を使う場合、使わない場合の両方のパターンで書いてみます。
方法1: 無名関数を使う
自分はPHP7以上のサーバを使うことが多いので、こちらのやり方で書くことが多いです。
関数名や名前の衝突を考えなくていいので、個人的にラク。
無名関数版 コードを開く
方法2: 無名関数を使わない
無名関数を使わない時は、こういう感じになります(方法1と処理は同じ)
関数を定義してから、その関数名をadd_shortcodeに渡す、という流れになります。
こちらの書き方の方がよく見かけますかね。
無名関数を使わない版 コードを開く
方法1 もしくは 方法2を使って、2つの関数をショートコードに登録することができました。
- bloginfo_name: ブログ名を取得するショートコード
- bloginfo_url: ブログURLを取得するショートコード
記事内で使う
先程作成したショートコードを記事の中に記述していきます。
WordPressの記事編集で、文章の中にこのように書いてみます。
1[bloginfo_name] のURLは [bloginfo_url] です。
例として、ブログ名がNPメモリア サンプル版、URLがhttps://sample.nprog256.netとします。
この状態でプレビューで表示結果を確認すると、以下のようになります。
1NPメモリア サンプル のURLは https://sample.nprog256.net です。
WordPressの設定画面でブログ名やURL変更すれば、このショートコードを使っている箇所全てに変更が反映されるようになります。
これで手動での修正漏れの心配がなくなった。
Gutenbergを使っている場合なら、ショートコードを作成しなくても似たようなことができます。
ブログ名やタイトル名をWordPressの管理画面から変更した場合、再利用可能ブロックだけを修正すれば、利用しているブロック全てに変更を反映することが可能です。
ただ、再利用可能ブロックを解除している場合は、そのブロックは反映されないので注意が必要です。
おわりに
今回は、WordPressのショートコードを使ってブログ名とURLを記事内に表示する、という内容でした。
これでガリガリと記事内にブログ名やURLを記述することができます。
とは言っても、そんなに多くはないと思うけど。。。
同じ記述はなるべく一箇所にまとめておきたいトコロですね。
それでは、このへんで。
バイナリー!