我在wordpress上创建了一个更新的网站,我想从旧网站导入所有.doc文件(大约200个)并将它们放到wordpress网站上。 任何想法如何进行批量导入或是复制和粘贴每个的唯一方法,这将需要很长时间。
答案 0 :(得分:1)
有办法做到这一点 - 但据我所知 - 这并不容易.. 我曾经挣扎过一次 - 但最终可以实现它。
原因是WORD * .doc是一种复杂的格式,即使简单的Copy& Paste也会出现问题(因为它实际上也会复制格式化)
您需要在php中使用COM接口,将DOC转换为TXT文件或字符串,然后使用wp_insert_post( $my_post );
所以 - 打开DOC。 (你需要循环播放)
$filename="file.doc";
$TXTfilename = $filename . ".txt";
$word = new COM("word.application") or die("Unable to instantiate Word object");
$word->Documents->Open($filename);
$word->Documents[1]->SaveAs($TXTfilename ,2);// '2' for txt format
$word->Documents[1]->Close(false);
$word->Quit();
$word->Release();
$word = NULL;
unset($word);
$my_doc_string = file_get_contents($TXTfilename); //write file
unlink($TXTfilename);
然后,要么读取txt文件,要么在同一个函数中直接使用$ my_doc_string ..:
$title_p = 'mypost no'.$i;
$my_post = array(
'post_title' => $title_p,
'post_content' => $my_doc_string,
'post_status' => 'publish',
'post_author' => 1
);
$post_id = wp_insert_post( $my_post );
wp_insert_post( $my_post );
注意:据我所知,COM接口仅适用于PHP的WINDOWS版本,您还需要安装MS WORD ...
为您阅读更多内容:
http://php.net/manual/en/book.com.php
http://docstore.mik.ua/orelly/webprog/php/ch15_03.htm
http://www.gsdesign.ro/blog/extracting-text-from-word-documents-in-php-with-com-objects/
编辑我 -
再次阅读您的问题后 - 如果您有一个旧网站 - 为什么需要DOC文件?你可以用HTML PARSER做到这一点(如果OLD网站的内容与DOC相同 - 但是用HTML格式)
编辑II - 令人难以置信 - 今天我偶然发现了这个插件,虽然我没有尝试过但可能会有所帮助。
http://wordpress.org/extend/plugins/auto-poster/screenshots/
答案 1 :(得分:0)
我下载了一个插件https://wordpress.org/plugins/mammoth-docx-converter/,可以将word文档导入wordpress编辑器进行发布。格式映射不是100%,而是基本的东西。我现在需要做的就是能够在导入后使用帖子内容中的特定关键词来填充与特定文档(自定义帖子)关联的元数据,以异步填充元框。我也试图从文档的特定段落(第二段)自动生成摘录。我读了关于wp所有导入插件并发现它非常接近我想要的但是不能真正弄清楚如何导入word文档时间使上述操作自动化。我能够使用来自我的网站的导出内容使用WRX规范提出一个XML文件,然后上传回来进行测试,但这不是我真正想要实现的目标。无论如何wp所有导入插件可以自定义做我想要的吗?
我也发现你的php方法非常合适,可能更适合我需要它和我的目标。对我来说重要的是自动导入word文档作为帖子保持格式完整,然后自动异步填充关联的元数据。你有基于上面的PHP COM代码的任何建议吗?