Spécification WordPress WXR

je suis en train d'essayer de trouver une spécification pour le standard d'import/export WordPress WXR et je suis incapable de trouver toute documentation officielle de WordPress sur le standard.

est-ce que quelqu'un connaît une ressource officielle qui pourrait me dire exactement comment produire un fichier WXR afin qu'il soit automatiquement importé dans WordPress.com ou des sites WordPress auto-hébergés?

je suis spécifiquement en train d'essayer de créer un système d'exportation WXR pour un CMS existant afin que les utilisateurs puissent passer à WordPress facilement.

20
demandé sur Cord Blomquist 2012-02-20 08:14:16

2 réponses

j'ai posé cette question à John O'Nolan, un développeur de WordPress core, qui a transmis ma question au committeur de core Aaron Jorbin. O'Nolan a répondu en disant (Je paraphrase) qu'il n'y a pas de documentation officielle sur la norme WXR, mais que l'ingénierie inverse d'une exportation WXR devrait me donner toutes les informations dont j'ai besoin.

O'Nolan a également noté que les données plus complexes que le contenu d'un billet de blog sont probablement mieux traitées par une conversion/migration de base de données, plutôt que par une importation. Je suis plutôt d'accord ici.

j'ai trouvé ces deux liens pour aider dans mes efforts pour inverser la WXR standard:

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/

ce dernier lien traite spécifiquement des pièces jointes, quelque chose d'essentiel pour mon projet actuel.

j'espère que cela aidera n'importe qui d'autre qui est curieux au sujet de WXR.

23
répondu Cord Blomquist 2017-03-23 07:36:22

pour ceux qui n'ont pas d'export WordPress qui ont néanmoins besoin de faire un fichier WXR,le code de l'exportateur est sur le serveur Trac des plugins WordPress. L'extrait ci-dessous, à partir de la <rss> noeud à un objet couple foreach boucles:

<?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; ?>
0
répondu Michael 2018-08-08 19:15:27