PHPでショートコードの中の引数の使い方がわかりません。例えば以下のコードをfunction.PHPの中に書いて


function test($random) {
echo "数字は".$random;
}
add_shortcode('test', 'testcode');


テーマ内からショートコードを読み出す際に、引数として$randomを使いたいのですが、
例えば、$randomの値を使う場合

<?php
$random = mt_rand(0, 20);
echo do_shortcode('[test random = $random]');
?>

このような書き方は間違っておりますでしょうか。

回答の条件
  • 1人50回まで
  • 登録:2017/07/13 15:46:08
  • 終了:2017/07/18 10:49:18

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4607ベストアンサー獲得回数19442017/07/13 17:36:25

ショートコードを実装する方が違います。

<?php
    ...

function testcode($atts) {
    $a = shortcode_atts( array(
        'random' => 0,
    ), $atts, 'test' );

    echo "数字は" . $a['random'];
}
add_shortcode('test', 'testcode');
  • add_shortcode 関数の第二引数は、実装している関数名
  • ショートコードで指定した属性を取り出すには、shortcode_atts 関数を使う

参考:

id:kajironpu

ありがとうございました。無事できました。shortcode_atts 関数というものを使うのですね。あと、

echo do_shortcode('[test random = $random]');
↑がうまく動かずいろいろ調べてみました。

echo do_shortcode('[test random="'.$random.'"]');
このようにしたら無事動きました!

2017/07/14 11:24:51

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません