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