WordPress: ショートコードの自作方法

WordPressのショートコード。
Amazonの商品リンクを張るときに使っていたので存在自体は知っていましたが、簡単に自作できるというので試してみました。

1. 事の発端

当ブログの末尾のコピーライト表示はこんな感じ。年が変わる度に書き換えるのが面倒だし忘れがちなので、PHPで自動的に表示が変わるようにしたかった。
でも、Wordpressは、ウィジットや記事の中に直接PHPコードを記述できないために挫折。

2. ショートコードとは

WordPressにはショートコードという機能があります。

ショートコードを使えば、わざわざHTMLタグを記述しなくても、簡単な書き方で複雑なHTMLを挿入することができます。

WordPressのショートコードを自作する方法 より引用

[shortcode]
↑ こんな簡単な記述だけで、複雑なHTMLが挿入されるとのこと。PHPスクリプトを走らせてその結果を挿入できるので、動的なページを作成できます。コピーライトの年表示を自動更新するのに使えそうです。

3. ショートコードの設定

  1. ショートコードで実行されるハンドラを用意する。
  2. そのハンドラを登録する。

以上のコードをfunctions.phpに記述するのが基本です。

functions.phpのパスは、Wordpressが設置されているルートから辿って次の所にあります。
{Wordpressのルート}と{使用中のテーマ}は、環境に応じて置き換えること。
{Wordpressのルート}/wp-content/themes/{使用中のテーマ}/functions.php

なお、既存のテーマを直接カスタマイズせず、そのテーマを継承した子テーマを作成してから、子テーマをカスタマイズするのが吉です。その方法は割愛。

さて、functions.phpにショートコード関連を記述しても良いのですが、可読性や後々のメンテがやりやすいように、別ファイルmy_shortcode.phpに分離しました。置き場所はfunctions.phpと同じディレクトリです。

ショートコードのハンドラの部分です。
ショートコード毎に別々のハンドラを用意してもOKですが、ハンドラを1つに集約し、引数nameによって場合分けするようにしました。

ハンドラを登録している部分です。[mysc]というショートコードで上記のハンドラが起動します。ショートコード名は任意ですが、他と被らないこと。

 

次に、my_shortcode.phpを読み込むコードをfunctions.phpの最後の方に追加します。

 

4. ショートカットを試す

上記のショートコードを本記事に埋め込んでみました。name='copyright'を引数に指定しているので、コピーライトが表示されるはずです。

↓ ここにコピーライトが表示されているはず。
© 2015-2019 Blue-black.ink
↑ ここにコピーライトが表示されているはず。

これはどうだ?

hoge

 

以上、ショートコードの自作方法でした。

 




Leave a Comment

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください