#あらまし
記事内に記述したショートコード[pripara]を仕込むと、
wp_contentが読まれる直前に出力されてしまう問題が発生した。
function shortcode_pripara($atts) {
echo "サイリウムチェンジ!ぷりっ<br>";
return;
}
add_shortcode('pripara', 'shortcode_pripara');
####2015-02-03追記
特に凝った事をしていなければ、returnで返せばOK。そうすべき。
function shortcode_pripara($atts) {
return "サイリウムチェンジ!ぷりっ<br>";
}
add_shortcode('pripara', 'shortcode_pripara');
しかし、出力が存在する外部のphpファイルを
(仕方なく)読み込まなくてはならない場合、wp_contentの直前に出力される。
function shortcode_require_pri_ticket($atts) {
require_once(dirname(__FILE__) . '/ticket/chanko.php');
return;
}
add_shortcode('require_pri_ticket', 'shortcode_require_pri_ticket');
#どうしたか
phpの標準出力のバッファを利用する。
function shortcode_require_pri_ticket($atts) {
ob_start();
require_once(dirname(__FILE__) . '/ticket/chanko.php');
$output_string = ob_get_contents();
ob_end_clean();
return $output_string;
}
add_shortcode('require_pri_ticket', 'shortcode_require_pri_ticket');
##参考
[resolved] Plugin called via shortcode appears at the wrong place on post
https://wordpress.org/support/topic/plugin-called-via-shortcode-appears-at-the-wrong-place-on-post?replies=5