post_content中的wp_post_insert HTML

时间:2014-07-17 20:29:27

标签: php mysql wordpress

我正在尝试使用wp_post_insert函数从我的HTML页面创建帖子/页面。

到目前为止,我已经:

$html = file_get_contents($dir . $data['url']);

$post = array(
        'post_content'  => $html,
        'post_name'     => sanitize_title_with_dashes($data['title']), 
        'post_title'    => $data['title'],
        'post_status'   => 'publish',
        'post_type'     => $data['type'], 
);  
$post_id = wp_insert_post($post);

然而,由于post_content始终为空,因此这似乎不起作用。我尝试过不同的卫生功能,但都没有工作。

HTML代码被读入$ html变量,但我想问题来自于它的多行。

你能给我一个暗示吗?

2 个答案:

答案 0 :(得分:0)

我发现我正在阅读的文件是用UCS2编码编码的 - file_get_contents返回特殊字符,这些字符在浏览器中看起来不错(浏览器有自己的字符编码),但对WP不好。

解决方案是将HTML文件重新编码为UTF-8文件。

答案 1 :(得分:-1)

欺骗函数认为输入已经使用filter属性进行了清理:

$post = array(
        'post_content'  => $html,
        'post_name'     => sanitize_title_with_dashes($data['title']), 
        'post_title'    => $data['title'],
        'post_status'   => 'publish',
        'post_type'     => $data['type'], 
        'filter' => true 
);