ようこそのお運びで、厚く御礼申し上げます。
46日目です。今回は「ショートコード」を使ってみようと思います。
ショートコードを書いて、設定した文字列を取得してみる。
ショートコードを使って設定した文字列を取得し、記事にショートコードを記入しその値を表示します。
- function.phpやプラグインファイルにショートコード用の関数を作成
- add_shortcodeをかいて、呼び出すショートコード名と1の関数を設定する
- 記事内やテンプレートファイルにショートコードを書いて呼び出す。
まずは、ショートコードとは何か?
WordPressを使っているとショートコードという言葉を良く聞きます。
※わかる人には「関数」みたいなものといえばわかりますが。
ショートコードとは簡単いうと「ひらけごま」といった「合い言葉」みたいなものです。
※つまり「合い言葉」をいうと、「何か」を取得できます。
例1(あくまでもイメージです) 「ひらけごま」 → 扉が開き「金貨」を取得
合い言葉をいうと、扉が開き「金貨」が取得できました。
また、ただ取得するだけではありません。
例2(こっちもあくまでもイメージ) 「ねこ」と「ぶた」を持って「ひらけごま」 → 扉が開き「金貨」「小判」「真珠」を取得
結果が変わってきましたね。
扉の中でぶた→真珠に、ねこ→小判に変化しました。
といったようにショートコードには「値(引数)」を持たせ、結果をかえることもできます。
実際には以前書いた記事にこのような例がありますので、こちらを参照してください。
[WordPress]特定のタグのタイトルリストを表示するショートコードを実装してみる
文字列を出力するショートコードを作成してみる
今回のショートコード名は「jugem」です。
まずは、文字列を表示する部分にショートコードを記入します。
※a.記事内や固定ページ内に記入する場合は、[jugem]と記入します
※b.single.phpやpage.php,header.phpなどのテンプレートファイルに記入する場合は、以下のようにと記入します
<?php echo do_shortcode('[jugem]'); ?>
保存をすると、実際のページには以下のように表示されます。
まずは、function.phpに書いてみます。
今回は、簡単にfunction.phpに以下のコードを書きました。
function paka3ShortCodeFirst() { $str =<<<EOS じゅげむ じゅげむ ごこうのすりきれ かいじゃりすいぎょの すいぎょうまつ うんらいまつ ふうらいまつ くうねるところにすむところ やぶらこうじのぶらこうじ ぱいぽ ぱいぽ ぱいぽのしゅーりんがん しゅーりんがんのぐーりんだい ぐーりんだいのぽんぽこぴーの ぽんぽこなーの ちょうきゅうめいのちょうすけ EOS; return $str; } add_shortcode('jugem', 'paka3ShortCodeFirst');
ポイントはどこ?
今回は例1で述べたように、[jugem]とかいたら「じゅげむじゅげむ・・・」と値が表示されるコードです。
- ショートコード用の関数を作成
function paka3ShortCodeFirst() { $str =<<<EOS (表示したい文字列や画像、htmlタグなど) EOS; return $str; }
- add_shortcodeをつかって、呼び出すショートコード名と1の関数を設定する。
add_shortcode('ショートコード名','呼び出す関数');add_shortcode('jugem', 'paka3ShortCodeFirst');
- あとは、上記に書いた通り、表示したい部分に記事本文内にショートコードを記入します。
(記事本文内) [ショートコード名]
またテンプレートでもdo_shortcodeをつかって、ショートコードを記入することができます。
<?php echo do_shortcode('[ショートコード名]'); ?>
※WordPress Codex 日本語版:do_shortcode
the_contentのフィルターとして使われてる、この命令はまだなにかできそうですね。function.phpでもつかえそう。
コードをプラグイン用のファイルにします
それではfunction.phpに書いたコードを消して、
「*******.php」というファイルを作成し、以下のコードを記入します。
このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
私は「はじめて」ではないですがw、今回の1日1プラグインではじめてショートコードを扱ってみました。使い始めると便利なんですが、私の中で「ショートコード」を覚えておくことができなかったり・・・。この記事を書いていきながら、そこら辺の問題も解決できるプラグインが作成できたらいいなー。