木代成達也
Posted,  By 木代成達也
WEBの階

WP ショートコードについて

みなさん、お久しぶりです。
Webソリューション部 キヨナリです。

今回はWordpress(以下 WP)の「ショートコード」のご紹介です!

WPにはたくさんの関数と呼ばれる便利なものがあります。

数学における関数とは変数に依存して決まる値や対応を表す式の事ですが、
言葉にすると難しいのでイメージ的にはデータが格納された箱のようなものです。

その箱を呼び出すだけで、中に格納されたデータを表示することができます!

WPに用意されているものだと、ブログのタイトルや作成したカテゴリの一覧を表示することができます。

ブログのURLを取得する
home_url();
ブログのタイトルを取得する
bloginfo('name');
カテゴリの一覧を取得する
wp_list_categories();

このように一行で呼び出すことができます。

※細かい設定などもいろいろありますが今回はこの辺で…

このように便利な関数ですが、これはテンプレートタグと呼ばれているもので、テンプレートに直接書き込むことで初めて機能するものです。

管理画面から記事を投稿する時には、残念ながらこの機能は使えません;

記事を投稿する時にもこの機能を使いたい…

そこで登場するのがショートコードです!

ショートコードは自分で作成することがきます。

簡単なショートコード
function funcName(){
 return "Webソリューション部のキヨナリです";
}
add_shortcode('kiyo', 'funcName');

こんなショートコードを作成してみました。

投稿記事に下記のように入力すると…

[ kiyo ]
Webソリューション部のキヨナリです

▲ このように表示されます。

このサイトのURLを取得する
function siteUrl() {
 return get_bloginfo('url');
}
add_shortcode('url', 'siteUrl');
[ url ]
https://e-adshin.com/adlab

▲ これでこのサイトのURLを投稿記事に呼び出すことができます!

これでドメインを変更した時や、
サイトのURLを変更した場合にも投稿記事を編集せずに済みますね♪

少し応用するとショートコードに変数を設定することもできます。

カテゴリページへのパーマリンクを取得する
function catUrl($v) { extract(shortcode_atts(array(
  'id' => 0,
 ), $v));
 return get_category_link($id);
}
add_shortcode('catLink', 'catUrl');
[ catLink id=3 ]

▲ これでカテゴリIDを指定するだけでリンクを取得することができました!

いろいろなショートコードを準備することでサイト管理の手間を省いたり、
記事の投稿を少し便利にしたりと、いまより1ランク上のサイト構築できそうですね♪

以上、Webソリューション部 キヨナリでした!

このブログを書いたヒト
木代成達也
Webソリューション部 係長
Webソリューション部でコーディングを中心に担当しています。
HTML、CSS、PHP、Javascriptなどを日々勉強しています。
背中で語る男になりたいです。
WEBの階