WordPressで独自のショートコードをプラグインレスで設定
2014/11/22
WordPress™の投稿本文内に対して埋め込み挿入を行いたいものがあるときに、
投稿本文内では動作しない場合はよくあります。
ビジュアルエディタに戻した際にタグが変更されてしまうものもあれば、
PHPコードのようにエスケープされ実行されないものもあります。
そうした本文内に対して埋め込みを行うことが困難な要素を、
埋め込んで表示したい場合には独自のショートコードを設定すると簡単に設置することができます。
そうしたfunctions.phpでショートコードを独自に作成する方法をご紹介します。
はじめに
functions.phpを編集すればプラグインなどでちょうどいいものが見当たらない場合でも、
自分で実現したい機能を自在に導入することができます。
functions.phpの編集を行うこと自体はテーマの編集から行うことができて、
好きに編集をすることができますが、
導入しているテーマファイルの編集を行った場合には、
テーマのアップデートによって編集内容が失われてしまいます。
functions.phpを編集するに当たっては面倒でも子テーマを利用して、
編集用のfunctions.phpを用意してから編集することをお勧めします。
WordPressのfunctions.php編集には子テーマを利用
functions.phpへのショートコード定義
functions.phpに対してショートコードを定義する際のもっとも簡単な例は以下のような感じです。
子テーマディレクトリに対して配置したfunctions.phpを編集します。
functions.phpに対しては以下のように記述しています。
1 2 3 4 5 6 7 |
<?php function my_shortcode_handler($atts, $content=null) { return '<p>my-shortcodeによって出力されています</p>'; } add_shortcode('my-shortcode', 'my_shortcode_handler'); ?> |
これによって、ショートコード[my-shortcode]を投稿本文に挿入することで、
「my-shortcodeによって出力されています」と出力されるものです。
実際にショートコードを投稿本文内に挿入すると以下のように表示されます。
このようにして、投稿エリアに対して実行したいPHPコードをショートコードで定義し、
投稿エリアの好きな部分に対して挿入することができます。
応用例
こうしたショートコードの埋め込み方法は以下のように自在に応用することができます。
複数行HTML出力
たとえば、ショートコードを指定して直接HTMLを出力する場合でも、
行数の多いHTMLをreturnで記述するのは非常に面倒です。
そんな場合には以下でご紹介するような記述を行うと、簡単にHTMLを出力することができます。
WordPressの独自ショートコードを設定し複数行HTMLを出力
こうしたHTMLの出力ではWordPressの本文に埋め込みがうまくいかない場合が多い、
iframeタグを含むような埋め込みでは非常に便利です。
JavaScript出力
HTMLの出力例と処理方法は同じですが、
内容を変更すればJavaScriptでも簡単に出力を行うことができます。
WordPressの独自ショートコードを設定し複数行JavaScriptを出力
パラメータ指定による外部ファイル出力
また、ショートコードにパラメータを指定することによって、
出力を行うソースファイルを切り替えて、出力ソースを都度変更することも可能です。
WordPressの独自ショートコードによって埋め込み外部ファイルを指定する
さいごに
今回は1行の簡単なPHPコードをショートコードにて出力を行いましたが、
PHPで実行できるソースであればどのようなものでも、ショートコード化することができ非常に便利です。
当然ながらショートコードですので、
IME辞書などに登録して呼び出して効率的に入力するようにすると便利です。
参考
ショートコード API – WordPress Codex 日本語版
WordPressはWordPress Foundation の登録商標(第5049965号)です。
WordPressロゴ、アイコンその他のマーク等はWordPress Foundation の商標であり、
WordPress Foundation の著作物です。
WordPress.comはWordPress Foundation が管理運営を行うドメインならびにサービスの名称です。
関連記事
-
22.Beautiful Math-Jetpack by WordPress.com
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
wordpress投稿にクリックでタグ付けにSimple Tags_v2.2-wordpressプラグインを利用
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
WordPressのコメント入力者の名前の横に表示される空白は何か
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
Google+1ボタンの改変したいと思った時に確認すること
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
WordPress4.0以降は「define(‘WPLANG’, ‘ja‘);」言語指定が不要になった
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
phpMyAdminでMySQLデータをサーバー上からインポートする
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
headタグ挿入にWP Headmaster_v0.2-wordpressプラグインを利用
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
VaultPress™オンラインバックアップサービスの利用登録
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
WordPress標準機能を利用してメール投稿する方法と設定
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
13.Gravatar ホバーカード-Jetpack by WordPress.com
Google or AdMax Promotion(it) 禁断の機能がau公式 …