WP_INSERT_POST->POST_CONTENT未显示

时间:2014-06-11 作者:chi11ax

我对wp\\U insert\\U post有问题。

当我试图插入帖子时,post\\u内容基本上显示为空白。我甚至进入MySQL进行确认。其他所有内容,post\\u标题、post\\u摘录等都显示得很好。

在将其传递给wp\\u insert\\u post之前,我做了一次print\\r($this->postData),以确保它不是空的,并且存在正确的数据。

数据内容如下

<object> ... </object> 
这会是一个问题吗?

下面是我的代码,它创建了传递到wp\\u insert\\u post的$this->postData变量。

$this->postData = array(
        \'post_content\' => $this->jsonData[\'data\'],
        \'post_title\' => $this->jsonData[\'title\'],
        \'post_excerpt\' => $this->jsonData[\'description\'],
        \'tags_input\' => $this->jsonData[\'tags\'],
        \'post_date\' => date(\'Y-m-d H:i:s\'),
        \'post_status\' => \'publish\',
        \'post_author\' => 1,
        \'post_date_gmt\' => date(\'Y-m-d H:i:s\'),
    );
提前感谢!

1 个回复
SO网友:chi11ax

这就是我发现的数据

<object>...</object>
是罪魁祸首。Wordpress在提交到数据库之前清理输入。其他不允许的标记包括

<embed>...</embed>
我在网上看到了这个解决方案

$postData = array( 
    ...
    \'filter\'=>true
    ...
);
然而,有人说这是一个安全缺陷。我挖得更深一点,我认为我找到的最好的方法似乎是:

kses_remove_filters();
$id = wp_insert_post($postData);
kses_init_filters();
无设置

\'filter\' => true,
我希望这对每个人都有帮助!:)

结束

相关推荐