0

我正在開發一個wordpress門戶。wp_insert_post iframe添加

我從前端頁面發送帶有ajax的html內容(youtube iframe)。 但是,當我插入該帖子wp_insert_post刪除iframe代碼。 ajax或其他地方沒有問題。我想有一些過濾器。

我該如何禁用並插入iframe代碼?我再次呼籲含量>$_POST["content"]

<div class="line nVideo" style="text-align: center;" ><iframe id="player" type="text/html" width="650px" height="380px" src="http://www.youtube.com/embed/mY8BZsIgg74?showinfo=1&amp;enablejsapi=1&amp;color=white&amp;origin=http://432designstudio.com" frameborder="0" allowfullscreen=""></iframe></div><div id="empty-line" class="nText " ><div>gasdgdsag</div> 

而且insertation後 - - 插入

代碼之前>get_post_field('post_content', $postID)

<div class="line nVideo" style="text-align: center"></div><div id="empty-line" class="nText "><div>gasdgdsag</div> 

回答

1

的WordPress有wp_kses功能,以確保只有被允許的HTML元素的名稱,屬性名稱和屬性值加上只有理智的HTML實體將出現在$ string中。在調用此函數之前,您必須從PHP的魔術引號中刪除任何斜線。

你的目的,你可以嘗試希望它解決您的問題

+0

其實它的工作通過你的主題功能

function kses_remove_filters() { // Normal filtering remove_filter('title_save_pre', 'wp_filter_kses'); // Comment filtering remove_filter('pre_comment_content', 'wp_filter_post_kses'); remove_filter('pre_comment_content', 'wp_filter_kses'); // Post filtering remove_filter('content_save_pre', 'wp_filter_post_kses'); remove_filter('excerpt_save_pre', 'wp_filter_post_kses'); remove_filter('content_filtered_save_pre', 'wp_filter_post_kses'); } 

或只是

kses_remove_filters(); 

中添加該代碼刪除此過濾器。但是你對安全問題有任何想法。插入帖子之前應該考慮什麼?該內容從用戶發送。 –

+1

您可以在此過濾器中設置允許的「標籤」,即您只想添加「class」和「iframe」。 https://codex.wordpress.org/Function_Reference/wp_kses_allowed_html,並阻止另一個「標籤」,即