我必须对WordPress中构建的网站进行一些小的更改,我遇到了一些wp_insert_content函数的问题.此函数对输入进行了清理,将一些HTML标记完全取出(如)并删除其他标记.我想关闭它,并在任何地方找到http://pp19dd.com/2010/06/unfiltered-wp_insert_post/的链接,其中解决方案是添加
'filter' => true
到帖子输入数组.
这篇文章是从2010年开始的,我从2011年发现了额外的一行(http://web.archiveorange.com/archive/v/TDTh42SUwDEc1GFmSrvU).这一行写道:
unset( $postarr[ 'filter' ] );
并且在将输入与默认值合并之后以及在清理之前立即调用.在我看来,这一行取消了上面的'filter'=> true语句.实际上,如果线路在那里就会发生消毒,如果线路被取出则消失.
所以简单的解决方案是添加'filter'=> true并删除函数中的额外行.但问题是我不知道该函数在哪里使用,我想知道在WP代码中是不是很聪明.WP的更新无论如何都会恢复它.那么......有没有其他方法可以阻止此功能清理输入?
有些其他插件可能正在尝试清理内容,在这种情况下,删除所有过滤器是唯一的选择,请尝试以下操作:
remove_all_filters("content_save_pre"); $post_id = wp_insert_post($post);
其他可能的过滤标签是:
pre_content
pre_post_content
content_pre
如果它不起作用,也可以逐个尝试.