wp_insert_post iframe添加

时间:2017-05-28 20:05:15

标签: wordpress iframe wordpress-theming custom-wordpress-pages

我正在开发一个wordpress门户网站。

我正在使用前端页面的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>

插入后我再次呼叫内容 - &gt; 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 个答案:

答案 0 :(得分:1)

WordPress具有wp_kses函数,以确保只有允许的HTML元素名称,属性名称和属性值加上只有合理的HTML实体才会出现在$ string中。在调用此函数之前,您必须从PHP的魔术引号中删除任何斜杠。

出于您的目的,您可以尝试通过在主题函数中添加此代码来删除此过滤器

    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();

希望它能解决你的问题