我在wordpress上创建了一个更新的网站,我想从旧网站中导入所有.doc文件(约200个),并将它们放入wordpress网站上的帖子中。任何想法如何进行此批量导入,还是复制和粘贴每一个的唯一方法,这将需要很长时间。
有一种方法可以做到这一点-但据我所知-这并不容易..我曾为它苦苦挣扎过-但最终还是可以实现的。
原因是WORD * .doc是一种复杂的格式,即使是简单的复制粘贴也会造成问题(因为它实际上也会复制格式)
[您需要在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)
EDIT II-
令人难以置信-今天我偶然发现了这个插件,尽管我没有尝试过,但它可能会有所帮助。http://wordpress.org/extend/plugins/auto-poster/screenshots/
l下载了一个插件https://wordpress.org/plugins/mammoth-docx-converter/,该插件可以将Word文档导入Wordpress编辑器进行发布。格式映射不是100%,但是基本的东西。我现在要做的就是能够在导入时使用来自帖子内容的特定关键字来填充与该特定文档(自定义帖子)相关联的元数据,以异步填充元框。我也试图从文档的特定段落(第二段)自动生成摘录。时间使上述操作自动化。我能够使用WRX规范从源代码中提取XML文件,利用我网站上导出的内容,然后再次上传以进行测试,但这并不是我真正想要的。无论如何有wp所有导入插件可以自定义做我想要的吗?