将.doc文件导入wordpress



我正在wordpress(codex)上修改一个网站,我想从旧网站导入所有.doc文件(约200个),并将其发布到wordpress网站上。任何关于如何进行批量导入的想法,或者是复制和粘贴每个想法的唯一方法,这将需要很长时间。

有一种方法可以做到这一点,但据我所知,这并不容易。。我曾经挣扎过一次,但最终可以实现。

原因是WORD*.doc是一种复杂的格式,甚至是简单的Copy&粘贴可能会产生问题(因为它实际上也复制格式化)

您需要使用php中的COM接口,将DOC转换为TXT文件或字符串,然后使用wp_insert_post( $my_post ); 创建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/

编辑I-

再读一遍你的问题后——如果你有一个旧网站——为什么你需要DOC文件?您可能可以使用HTML PARSER(如果旧网站的内容与DOC相同,但使用HTML)

EDIT II-难以置信-今天我偶然发现了这个插件,虽然我没有尝试过,但它可能会有所帮助。

http://wordpress.org/extend/plugins/auto-poster/screenshots/

我下载了一个插件https://wordpress.org/plugins/mammoth-docx-converter/能够将word文档导入wordpress编辑器进行发布。格式映射不是100%,而是做一些基本的工作。我现在所需要做的就是能够在导入时使用帖子内容中的特定关键字来异步填充元框,从而填充与该特定文档相关联的元数据(自定义帖子)。我还试图自动生成文件特定段落(第二段)的摘录。我读过wp-all-import插件,发现它非常接近我想要的,但无法真正弄清楚如何在自动执行上述操作的同时导入word文档。我能够使用WRX规范从源代码中获得一个XML文件,该规范利用了从我的网站导出的内容,然后再次上传用于测试目的,但这不是我真正想要实现的。有没有wp-all-import插件可以自定义来做我想做的事情?

我还发现你的php方法非常合适,可能更适合我需要它做的事情和我的目标。对我来说,重要的是自动导入word文档作为帖子,保持格式不变,然后自动异步填充相关元数据。你有任何基于上述php COM代码的建议吗?

最新更新