ショートコード(その1:挿入テスト)

ショートコードによるコンテンツのテスト挿入

ショートコードのテスト
つぎはショートコードから渡された引数です。
"file" => "include/shortcode/ShortcodeTest"
"ttl" => "ショートコードのテスト"
"uri" => "https://hustlemouse.com/"

上のショートコードの記述

【注意】ショートコードのクォーテーションは必ずダブルクォーてションで記述しないと正しく動作しません。

[hustleShort file=”include/shortcode/ShortcodeTest” ttl=”ショートコードのテスト” uri=”https://hustlemouse.com/”]

ShortcodeTest.phpのソースコード

<?php /** * @package asama * @category include/shortcode */ $HSTL = get_query_var(‘HSTL’);//テーマのメインオブジェクトの参照を受け取る。 $args = get_query_var(‘params’);//ショートコードのパラメータ配列の参照を受け取る。 extract(shortcode_atts(array( ‘ttl’ => ‘テンプレートPHPインクルードテスト’, ‘uri’ => ‘http://schop.me/’, ‘author’ => ‘ハッスルマウス’, ), $args)); $url = home_url(); $uri = home_url(); $str = ‘<br>つぎはショートコードから渡された引数です。’; foreach($args as $key=>$vlu) { $str .= ‘<br>”‘.$key.'” => “‘.$vlu.'”‘; } echo ‘<p name=”‘.$author.'”><a href=”‘.$uri.'”>’.$ttl.'</a><br>’.$str.'</p>’;

ショートコードを動作させるための汎用関数

あさまテーマでは、phpソースを動的にインクルードして動作させるための汎用関数を用意している。以降、独自ショートコードは本関数を利用している。

/*** LOAD SOME SHORT CODES ***/ public function doHustleShortcode($params = array()) { extract(shortcode_atts(array(‘file’=>’default’), $params)); ob_start(); set_query_var(‘HSTL’, $GLOBALS[‘HSTL’]); set_query_var(‘params’, $params); get_template_part($file); return ob_get_clean(); }