ロリポップ!に設置していあるWPが軒並み乗っ取られている件で、やっぱり投稿とかページでPHP動かせるようにするのはやめました。
代わりにショートコードを使います。
ということでショートコードの書き方メモ。
function.phpにショートコードの定義を追記。
例 パーマリンク取得
function geturl() { return get_permalink(); } add_shortcode('url', 'geturl');
add_shortcodeというのが、WPの関数で、この第一引数に呼び出しに使う名前(投稿やページに記述する名前)、第二引数にFunctionで定義した、実行したい挙動を書いた関数の名前を記述します。
ウィジェットでショートコードを使う
ウィジェットでもショートコードを使いたい場合は以下をfunction.phpに追加。
add_filter('widget_text', 'do_shortcode');
で、HTML側での記述(呼び出し)は第一引数を書く。
[url]
リンク貼りたいときは↓
<a href="[url]">
こっちはプラグインで使ったことある人も多いはず。
sitemap作成系とかフォーム作成系のプラグインとかで呼び出したいところで書いてますよね。
もちろん中にif文とか書くこともできるし、ショートコードの中にショートコードを書くこともできます。
テンプレ内でショートコードを呼び出す
テンプレート内でショートコードを呼び出したい時は以下で呼び出せます。
<?php echo do_shortcode('[url]'); ?>
ショートコードのネスト(入れ子)
ショートコードをネストさせたい場合は、「do_shortcode();」を使います。
私の場合、特定ページや投稿を、パーツとして呼び出すというようなショートコードや、画像パスやルートのURLを呼び出すようなショートコードを割とよく使うのですが、
「ショートコードで呼び出したいページの中に、画像パスをショートコードで書いてある」
とかいう【ショートコードのネスト】状態は、このままでは機能しません。
ショートコードをネストさせたい場合は、「do_shortcode();」を使います。
function 関数名() { return do_shortcode(処理内容); } add_shortcode('呼び出し用名前', '関数名');
こんな感じです。