web-dev-qa-db-ja.com

設定APIコールバック関数がどこからもhtmlの引用符を挿入

現在私はsettings APIを使って私のテーマのWordpressオプションのためのコールバックを書くことを試みています。これは私の機能です:

    function background_callback($args){
    printf(
        'Picture 
         <input 
               type="radio" 
               name="%1$s[%2$s]" 
               onclick= "showChoosenField("%3$s")" 
               value="<?php checked("%3$s", get_option("%1$s[%2$s]"), true); ?>"
          />
         <input 
               type="radio" 
               name="%1$s[%2$s]" 
               onclick= "showChoosenField("%4$s")" 
               value="<?php checked("%4$s", get_option("%1$s[%2$s]"), true); ?>"
          />   
         Color
         <p></p>
         <label for="%2$s">%5$s / %3$s/ %4$s</label>',
        $args['option_name'],
        $args['namePic_Color'],
        $args['valuePic'],
        $args['valueColor'],
        $args['description']
        );
    }

しかし私がブラウザを見るとき私はこの出力を得ます:

<td>"Picture"
    <input 
          type="radio" 
          name="header_options_group[img_color_name]" 
          onclick="showChoosenField(" ")" 
          value="<?php checked(" ", get_option("header_options_group[img_color_name]"), true); ?>
          ""
    />"
    <input 
          type="radio" 
          name="header_options_group[img_color_name]" 
          onclick="showChoosenField(" ")" 
          value="<?php checked(" ", get_option("header_options_group[img_color_name]"), true); ?>
          ""
    /> Color" 
    <p></p>
    <label for="img_color_name">
          Please check if you want a Picture or a color. / / 
    </label>
</td>

7、8、14、15行目の最後の引用符はどこからですか。私はこのことを取り除くためにたくさんのことを試みました。しかし、私が何を変更しても、彼らはそこに留まり、あるいは他の場所に他の引用符が現れる。私はすべてのものを連結し、異なる部分を削除しましたが、方法はありません。

私はそれを仮定しているので、printfのphpです。これが起こる理由を誰かが知っていましたか?それとも、それが動作するように私はそれを変更することができますPHPのせいですか?私はもうアイデアがありません。ありがとうございました。

1
theoretisch

このように引用符をエスケープする必要があります。

<input type="radio" name="%1$s[%2$s]" onclick= "showChoosenField(\'%3$s\')" value="<?php checked(\'%3$s\', get_option(\'%1$s[%2$s]\'), true); ?>"/>
0
Ranuka