我正在尝试使用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变量,但我想问题来自于它的多行。
你能给我一个暗示吗?答案 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
);