0

wordpress プラグインに Google イベント トラッキングを追加しようとしています。このプラグインの送信ボタンのコードは次のとおりです。

{
        return "<input  type=\"submit\" ".
                "name=\"".fm_form_submit_btn_name()."\" ".
                "id=\"".fm_form_submit_btn_id()."\" ".
                "class=\"submit\" ".
                "value=\"".fm_form_submit_btn_text()."\" ".
                "onclick=\"".fm_form_submit_btn_script()."\" ".
                "  />\n";
    }

上記のブロックにGoogle アナリティクス トラッキング コードを追加onclick=_gaq.push(['_trackEvent', 'Form', 'Submit', 'Apply'])し、最終的にはフォームのタイトルを返すものに置き換えよう'Apply'としています。fm_form_the_title()

問題: トラッキング コード ブロックを挿入するときに使用する引用符の配置に関係なく、「構文エラー、予期しない T_CONSTANT_ENCAPSED_STRING」または「T_STRING」というエラーに直面し、サイト全体がシャットダウンします。

EDIT:上記のコードブロックは機能し、単純化する必要はなく、はるかに大きなプロジェクトの一部です。私の質問は、私のウェブサイトを壊さずに追加しonclick=_gaq.push(['_trackEvent', 'Form', 'Submit', 'Apply'])、最終的に置き換える方法です。'Apply'fm_form_the_title()

4

4 に答える 4

3

以下は有効ですが、返された後にこれを使用しているコードは、括弧、角括弧、または単一引用符のいずれかでエラーをスローする可能性があります。これが機能しない場合は、返された後にこれが使用されている場所を調べ、それに応じて特殊文字をエスケープします。

function yourfunc() {

  return "<input  type=\"submit\" ".
    "name=\"".fm_form_submit_btn_name()."\" ".
    "id=\"".fm_form_submit_btn_id()."\" ".
    "class=\"submit\" ".
    "value=\"".fm_form_submit_btn_text()."\" ".
    "onclick=\"_gaq.push(['_trackEvent', 'Form',".
    "'Submit', '".fm_form_the_title()."']);".
    fm_form_submit_btn_script()."\"/>\n";

}

_gaq.push メソッドに渡される配列でシングル クォーテーションを使用せずに試してください。

function yourfunc() {

  return "<input  type=\"submit\" ".
    "name=\"".fm_form_submit_btn_name()."\" ".
    "id=\"".fm_form_submit_btn_id()."\" ".
    "class=\"submit\" ".
    "value=\"".fm_form_submit_btn_text()."\" ".
    "onclick=\"_gaq.push([\"_trackEvent\", \"Form\",".
    "\"Submit\", \"".fm_form_the_title()."\"]);".
    fm_form_submit_btn_script()."\"/>\n";

}

以下の人たちに同意する必要がありますが、読みやすさと将来のサポートの両方のために、以下が最適です。

function yourfunc() {

  return '<input  type="submit" '.
    'name="'.fm_form_submit_btn_name().'" '.
    'id="'.fm_form_submit_btn_id().'" '.
    'class="submit" '.
    'value="'.fm_form_submit_btn_text().'" '.
    'onclick="_gaq.push(["_trackEvent", "Form",'.
    '"Submit", "'.fm_form_the_title().'"]); '.
    fm_form_submit_btn_script().'"/>\n';

}
于 2012-04-14T17:30:03.397 に答える
1

これを単純に使ってみませんか

return '<input  type="submit" '.
'name=\"".fm_form_submit_btn_name()."\" ".
'id="'.fm_form_submit_btn_id().'"'.
'class="submit"'.
'value=\"".fm_form_submit_btn_text().'"'.
'onclick="'.fm_form_submit_btn_script().'"'.
'  />\n';
于 2012-04-14T17:07:14.970 に答える
1

関数呼び出しに入れるために引用符をエスケープしているので、一重引用符を使用してみませんか?

 return '<input  type="submit" '.
            'name="'.fm_form_submit_btn_name().'" '.
            'id="'.fm_form_submit_btn_id().'" '.
            'class="submit" '.
            'value="'.fm_form_submit_btn_text().'" '.
            'onclick="'.fm_form_submit_btn_script().'" '.
            '  />
         ';
于 2012-04-14T17:08:15.890 に答える
0

試す

return '<input  type="submit" '.
'name=\"".fm_form_submit_btn_name(). '" '.
'id="'.fm_form_submit_btn_id().'" '.
'class="submit" ".
'value="'.fm_form_submit_btn_text().'" '.
'onclick="'.fm_form_submit_btn_script(). '" '.
' />';
于 2012-04-14T17:11:44.667 に答える