WordPress WXR Спецификация - PullRequest
       24

WordPress WXR Спецификация

22 голосов
/ 20 февраля 2012

Я пытаюсь найти спецификацию для стандарта импорта / экспорта WordPress WXR и не могу найти официальную документацию WordPress по этому стандарту.

Кто-нибудь знает об официальном ресурсе, который мог бы точно сказать мне, как создать файл WXR, чтобы он автоматически импортировался на сайты WordPress.com или WordPress?

Я специально пытаюсь создать систему экспорта WXR для существующей CMS, чтобы пользователи могли легко переходить на WordPress.

Ответы [ 2 ]

25 голосов
/ 22 февраля 2012

Я задал этот вопрос Джону О'Нолану, разработчику ядра WordPress, который направил мой вопрос коммиттеру ядра Аарону Джорбину.О'Нолан ответил, сказав (я перефразирую), что официальной документации по стандарту WXR нет, но что обратный инжиниринг экспорта WXR должен дать мне всю необходимую информацию.

О'Нолантакже отметил, что данные, более сложные, чем содержимое блога, вероятно, лучше всего решать с помощью преобразования / переноса базы данных, а не импорта.Я склонен согласиться с этим.

Я обнаружил, что эти две ссылки оказали некоторую помощь в моих усилиях по обратному проектированию стандарта 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.

1 голос
/ 08 августа 2018

Для тех, у кого нет экспорта в WordPress, которым, тем не менее, необходимо создать файл WXR, код для экспортера находится на сервере Trac плагинов WordPress. Выдержка ниже, от узла <rss> до пары объектов foreach loop:

<?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; ?>
...