2017-12-11 6 views
0

外部のPHPファイルを使用して、ポストコンテンツに隠された入力を含むフォームを追加しようとしています。なぜWordpress wp_update_post関数がhtmlフォームタグを削除するのですか?

ブラウザから試してみると、フォームは正常に追加されましたが、コマンドラインから試してみると、フォーム入力が削除されます。ここで

は私のコードです:私は、データベースをチェックすると、フォームは次のように保存されている

require('../wp-load.php'); 

$content = '<div class="buy-preowned"> 
    <form accept-charset="UTF-8" action="https://www.tesla.com//order?redirect=no" id="tesla-cpo-marketing-buy-form" method="post"> 
     <div> 
      <input name="CPOvehicle" type="text" value="1"/> 
      <input name="VIN" type="hidden" value="5YJSA1E1XHF210809"/> 
      <input name="vehicleMapId" type="hidden" value="1280359"/> 
      <input name="titleStatus" type="hidden" value="NEW"/> 
      <input name="form_id" type="hidden" value="tesla_cpo_marketing_buy_form"/> 
     </div> 
    </form> 
    <p class="small-text"> 
     Requires a $2,500 deposit 
    </p> 

</div> 
'; 

$post_id = 1; 
$data = array(
    'ID'   => $post_id, 
    'post_content' => $content, 
); 

<form accept-charset="UTF-8" action="https://www.tesla.com//order?redirect=no" id="tesla-cpo-marketing-buy-form" method="post"> 
    <div> 
    </div> 
</form> 

私は、コマンドラインからスクリプトをこするときにのみ発生され、任意のアイデアそれを解決する方法。

ありがとうございました

答えて

0

セキュリティフィルターが内蔵されています。コンテンツ内にいくつかのフォームデータを保存するのは普通ではないので(ショートコードがあります)、WPはいくつかの非テキストタグの挿入を無効にしました。

とにかく、手動で有効にすることができます。

kses_remove_filters();  
$post_id = 1; 
$data = array(
    'ID'   => $post_id, 
    'post_content' => $content, 
);  
wp_update_post($data); 
kses_init_filters(); 
関連する問題