我试图找到一个规范的WordPress WXR导入/导出标准,我无法找到任何官方文档从WordPress的标准。有没有人知道一个官方资源,可以告诉我究竟如何产生一个WXR文件,使它能够自动导入到WordPress.com或WordPress的自托管网站?我特别尝试为现有的CMS创建一个WXR导出系统,这样用户就可以轻松地迁移到WordPress。
o8x7eapl1#
我向WordPress核心开发人员John O 'Nolan提出了这个问题,他将我的问题转发给了核心提交者Aaron Jorbin。O' Nolan回答说(我在解释)没有任何关于WXR标准的官方文档,但是对WXR导出进行逆向工程应该会给我提供我需要的所有信息。O 'Nolan还指出,比博客文章内容更复杂的数据最好通过数据库转换/迁移来处理,而不是导入。我发现这两个链接在我对WXR标准进行逆向工程的过程中有一定的帮助:http://ipggi.wordpress.com/2011/03/16/the-wordpress-extended-rss-wxr-exportimport-xml-document-format-decoded-and-explained/http://olalindberg.com/2008/write-your-own-wxr-file-to-migrate-custom-cms-to-wordpress/后一个链接专门处理附件,这对我当前的项目至关重要。我希望这对其他对WXR好奇的人有帮助。
bis0qfac2#
如果您需要创建一个WXR文件,而没有示例来进行模拟,请不要担心。code for the WXR exporter itself位于GitHub上。1下面是摘录,从<rss>节点到一对对象foreach循环。有了完整的代码,您应该能够从所使用的任何后端对WXR进行反向工程。
<rss>
foreach
<?php the_generator( 'export' ); ?> <rss version="2.0" xmlns:excerpt="http://wordpress.org/export/<?php echo WXR_VERSION; ?>/excerpt/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wp="http://wordpress.org/export/<?php echo WXR_VERSION; ?>/" > <channel> <title><?php bloginfo_rss( 'name' ); ?></title> <link><?php bloginfo_rss( 'url' ); ?></link> <description><?php bloginfo_rss( 'description' ); ?></description> <pubDate><?php echo date( 'D, d M Y H:i:s +0000' ); ?></pubDate> <language><?php bloginfo_rss( 'language' ); ?></language> <wp:wxr_version><?php echo WXR_VERSION; ?></wp:wxr_version> <wp:base_site_url><?php echo wxr_site_url(); ?></wp:base_site_url> <wp:base_blog_url><?php bloginfo_rss( 'url' ); ?></wp:base_blog_url> <?php wxr_authors_list( $post_ids ); ?> <?php foreach ( $cats as $c ) : ?> <wp:category> <wp:term_id><?php echo intval( $c->term_id ); ?></wp:term_id> <wp:category_nicename><?php echo wxr_cdata( $c->slug ); ?></wp:category_nicename> <wp:category_parent><?php echo wxr_cdata( $c->parent ? $cats[$c->parent]->slug : '' ); ?></wp:category_parent> <?php wxr_cat_name( $c ); wxr_category_description( $c ); wxr_term_meta( $c ); ?> </wp:category> <?php endforeach; ?> <?php foreach ( $tags as $t ) : ?> <wp:tag> <wp:term_id><?php echo intval( $t->term_id ); ?></wp:term_id> <wp:tag_slug><?php echo wxr_cdata( $t->slug ); ?></wp:tag_slug> <?php wxr_tag_name( $t ); wxr_tag_description( $t ); wxr_term_meta( $t ); ?> </wp:tag> <?php endforeach; ?> <?php foreach ( $terms as $t ) : ?> <wp:term> <wp:term_id><?php echo wxr_cdata( $t->term_id ); ?></wp:term_id> <wp:term_taxonomy><?php echo wxr_cdata( $t->taxonomy ); ?></wp:term_taxonomy> <wp:term_slug><?php echo wxr_cdata( $t->slug ); ?></wp:term_slug> <wp:term_parent><?php echo wxr_cdata( $t->parent ? $terms[$t->parent]->slug : '' ); ?></wp:term_parent> <?php wxr_term_name( $t ); wxr_term_description( $t ); wxr_term_meta( $t ); ?> </wp:term> <?php endforeach; ?>
1以前在WordPress plugins Trac server。感谢fooquency提供的新链接。
2条答案
按热度按时间o8x7eapl1#
我向WordPress核心开发人员John O 'Nolan提出了这个问题,他将我的问题转发给了核心提交者Aaron Jorbin。O' Nolan回答说(我在解释)没有任何关于WXR标准的官方文档,但是对WXR导出进行逆向工程应该会给我提供我需要的所有信息。
O 'Nolan还指出,比博客文章内容更复杂的数据最好通过数据库转换/迁移来处理,而不是导入。
我发现这两个链接在我对WXR标准进行逆向工程的过程中有一定的帮助:
http://ipggi.wordpress.com/2011/03/16/the-wordpress-extended-rss-wxr-exportimport-xml-document-format-decoded-and-explained/
http://olalindberg.com/2008/write-your-own-wxr-file-to-migrate-custom-cms-to-wordpress/
后一个链接专门处理附件,这对我当前的项目至关重要。
我希望这对其他对WXR好奇的人有帮助。
bis0qfac2#
如果您需要创建一个WXR文件,而没有示例来进行模拟,请不要担心。code for the WXR exporter itself位于GitHub上。1下面是摘录,从
<rss>
节点到一对对象foreach
循环。有了完整的代码,您应该能够从所使用的任何后端对WXR进行反向工程。
1以前在WordPress plugins Trac server。感谢fooquency提供的新链接。