[WordPress] ショート コード API 引数議会分岐ロジックのような拒否

スポンサーリンク

質問

私はこれ以上見ている何をやって把握おそらく、カウントすることができますが、私の人生のことはできませんよりもより多くの時間間違っています。過去に何度もショート関数を書かれているまた、回よりも私は数えることができます。どのような理由で、この 1 つが正しく動作を拒否します。何度も試みることの 1 時間は後の成功が見つかりません。助けてください

既定値だけで罰金、html 形式で表示されますは、ショート コード内で設定したパラメーターは反映されません

  • ID 文字列と整数として扱うことを試みた.
  • 多分ワードプレス私
    ID

    attr を使用するしようとして好きではない.

    listID

    、まだ失敗しようとします

  • extract

    vs

    shortcode_attr()

    の結果を変数に保存を使用してみました

  • と思った多分プラグインや、post_type、勝利から私を妨げていたが撮影時にショート コード API コード例 WordPress.org functions.php に挿入して、ショート私のポストに配置することから, それが働いた。変になっている
  • これをデバッグするオブジェクト キャッシュをクリアした、クライアント側に表示される関数では、既定値を変更した直後に変更
  • 多分ショート コード API は文字列の構築私を好まない。
    ob_start()

    を使用してバッファーと

    ob_get_clean()

    (のようなシャワーを取るか?) に保存.ない喜び

  • は、
    var_dump

    print_r

    、私を助けて何出力はありません。でも私はしようと

    var_dump(array('foo' => 'bar'))

    または

    print_r(array('foo' => 'bar'))

合理的な措置を超えて私の正気はテストされている今、マットムレンウェグ DDOSing スマート フォンをイジイジ午前

癒されてください私の狂気と 明らかに見下ろしています小さな細部を指摘する ので、私の日移動することができます

ショート コード

[subscription ID="1" referrer="overlay-promotion" buttonText="Send it to me" buttonBGHex="#000c49"]

関数

function subscription_form($atts){
    //Yes, I tried extract to, and yes, I changed the variables in the html below to reflect this change.
    $a = shortcode_atts( array(
        "ID" => "1",
        "referrer" => "not-what-you-think-this-should-be",
        "buttonText" => "Subscribe",
        "buttonBGHex" => "#78C138"
    ), $atts, "subscription" );

    $html = '<form id="subscribe" name="email_signup" class="form-inline validate" action="http://www.example.com/subscribe" method="post">';
    $html .= '<input type="hidden" name="referrer" value="'.$a["referrer"].'">';
    $html .= '<input type="hidden" name="success_url" value="http://www.example.com/subscribe/success">';
    $html .= '<input type="hidden" name="error_url" value="http://www.example.com/subscribe/error">';
    $html .= '<input type="hidden" name="list_id" value="'.$a["ID"].'">';
    $html .= '<input type="text" placeholder="Enter your email address" class="input-large" name="email">';
    $html .= '<input type="submit" class="btn btn-primary" style="background-color:'.$a["buttonBGHex"].';" name="submit" value="'.$a["buttonText"].'">';
    $html .= '</form>';

    return $html;
}
add_shortcode( 'subscription', 'subscription_form' );

enter image description here

出力

<form id="subscribe" name="email_signup" class="form-inline validate" action="https://www.example.com/subscribe" method="post">
<input type="hidden" name="referrer" value="HP-overlay-2015">
<input type="hidden" name="success_url" value="https://www.example.com/subscribe/success">
<input type="hidden" name="error_url" value="https://www.example.com/subscribe/error">
<input type="hidden" name="list_id" value="1"><input type="text" placeholder="Enter your email address" class="input-large" name="email">
<input type="submit" class="btn btn-primary" style="background-color:#78C138;" name="submit" value="Subscribe">
</form>

enter image description here

答え

add_shortcode

のコーデックスによると、ショートの属性名は小文字に変換されます


ショート属性名は常に小文字に変換ハンドラー関数に渡される前に。値は変更されません

正しい出力の小文字バージョンとあなたの配列のキーにアクセスする必要があることになります

http://stackoverflow.com/questions/27945313/shortcode-api-arguments-rejected-like-logic-in-the-congressional-branch

スポンサーリンク

Leave a Reply