| | 47 | $categories = (array) get_categories('get=all'); |
| | 48 | $tags = (array) get_tags('get=all'); |
| | 49 | |
| | 50 | while ( $parents = wxr_missing_parents($categories) ) { |
| | 51 | $found_parents = get_categories("include=" . join(', ', $parents)); |
| | 52 | if ( is_array($found_parents) && count($found_parents) ) |
| | 53 | $categories = array_merge($categories, $found_parents); |
| | 54 | else |
| | 55 | break; |
| | 56 | } |
| | 57 | |
| | 58 | // Put them in order to be inserted with no child going before its parent |
| | 59 | $pass = 0; |
| | 60 | $passes = 1000 + count($categories); |
| | 61 | while ( ( $cat = array_shift($categories) ) && ++$pass < $passes ) { |
| | 62 | if ( $cat->parent == 0 || isset($cats[$cat->parent]) ) { |
| | 63 | $cats[$cat->term_id] = $cat; |
| | 64 | } else { |
| | 65 | $categories[] = $cat; |
| | 66 | } |
| | 67 | } |
| | 68 | unset($categories); |
| | 69 | |
| | 70 | echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; |
| | 71 | ?> |
| | 72 | <!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. --> |
| | 73 | <!-- It contains information about your blog's posts, comments, and categories. --> |
| | 74 | <!-- You may use this file to transfer that content from one site to another. --> |
| | 75 | <!-- This file is not intended to serve as a complete backup of your blog. --> |
| | 76 | |
| | 77 | <!-- To import this information into a WordPress blog follow these steps. --> |
| | 78 | <!-- 1. Log into that blog as an administrator. --> |
| | 79 | <!-- 2. Go to Tools: Import in the blog's admin panels (or Manage: Import in older versions of WordPress). --> |
| | 80 | <!-- 3. Choose "WordPress" from the list. --> |
| | 81 | <!-- 4. Upload this file using the form provided on that page. --> |
| | 82 | <!-- 5. You will first be asked to map the authors in this export file to users --> |
| | 83 | <!-- on the blog. For each author, you may choose to map to an --> |
| | 84 | <!-- existing user on the blog or to create a new user --> |
| | 85 | <!-- 6. WordPress will then import each of the posts, comments, and categories --> |
| | 86 | <!-- contained in this file into your blog --> |
| | 87 | |
| | 88 | <?php the_generator('export');?> |
| | 89 | <rss version="2.0" |
| | 90 | xmlns:excerpt="http://wordpress.org/export/<?php echo WXR_VERSION; ?>/excerpt/" |
| | 91 | xmlns:content="http://purl.org/rss/1.0/modules/content/" |
| | 92 | xmlns:wfw="http://wellformedweb.org/CommentAPI/" |
| | 93 | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | 94 | xmlns:wp="http://wordpress.org/export/<?php echo WXR_VERSION; ?>/"> |
| | 95 | |
| | 96 | <channel> |
| | 97 | <title><?php bloginfo_rss('name'); ?></title> |
| | 98 | <link><?php bloginfo_rss('url') ?></link> |
| | 99 | <description><?php bloginfo_rss("description") ?></description> |
| | 100 | <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate> |
| | 101 | <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator> |
| | 102 | <language><?php echo get_option('rss_language'); ?></language> |
| | 103 | <wp:wxr_version><?php echo WXR_VERSION; ?></wp:wxr_version> |
| | 104 | <wp:base_site_url><?php echo wxr_site_url(); ?></wp:base_site_url> |
| | 105 | <wp:base_blog_url><?php bloginfo_rss('url'); ?></wp:base_blog_url> |
| | 106 | <?php if ( $cats ) : foreach ( $cats as $c ) : ?> |
| | 107 | <wp:category><wp:category_nicename><?php echo $c->slug; ?></wp:category_nicename><wp:category_parent><?php echo $c->parent ? $cats[$c->parent]->name : ''; ?></wp:category_parent><?php wxr_cat_name($c); ?><?php wxr_category_description($c); ?></wp:category> |
| | 108 | <?php endforeach; endif; ?> |
| | 109 | <?php if ( $tags ) : foreach ( $tags as $t ) : ?> |
| | 110 | <wp:tag><wp:tag_slug><?php echo $t->slug; ?></wp:tag_slug><?php wxr_tag_name($t); ?><?php wxr_tag_description($t); ?></wp:tag> |
| | 111 | <?php endforeach; endif; ?> |
| | 112 | <?php do_action('rss2_head'); ?> |
| | 113 | <?php if ($post_ids) { |
| | 114 | global $wp_query; |
| | 115 | $wp_query->in_the_loop = true; // Fake being in the loop. |
| | 116 | // fetch 20 posts at a time rather than loading the entire table into memory |
| | 117 | while ( $next_posts = array_splice($post_ids, 0, 20) ) { |
| | 118 | $where = "WHERE ID IN (".join(',', $next_posts).")"; |
| | 119 | $posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC"); |
| | 120 | foreach ($posts as $post) { |
| | 121 | // Don't export revisions. They bloat the export. |
| | 122 | if ( 'revision' == $post->post_type ) |
| | 123 | continue; |
| | 124 | setup_postdata($post); ?> |
| | 125 | <item> |
| | 126 | <title><?php echo apply_filters('the_title_rss', $post->post_title); ?></title> |
| | 127 | <link><?php the_permalink_rss() ?></link> |
| | 128 | <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> |
| | 129 | <dc:creator><?php echo wxr_cdata(get_the_author()); ?></dc:creator> |
| | 130 | <?php wxr_post_taxonomy() ?> |
| | 131 | |
| | 132 | <guid isPermaLink="false"><?php the_guid(); ?></guid> |
| | 133 | <description></description> |
| | 134 | <content:encoded><?php echo wxr_cdata( apply_filters('the_content_export', $post->post_content) ); ?></content:encoded> |
| | 135 | <excerpt:encoded><?php echo wxr_cdata( apply_filters('the_excerpt_export', $post->post_excerpt) ); ?></excerpt:encoded> |
| | 136 | <wp:post_id><?php echo $post->ID; ?></wp:post_id> |
| | 137 | <wp:post_date><?php echo $post->post_date; ?></wp:post_date> |
| | 138 | <wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt> |
| | 139 | <wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status> |
| | 140 | <wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status> |
| | 141 | <wp:post_name><?php echo $post->post_name; ?></wp:post_name> |
| | 142 | <wp:status><?php echo $post->post_status; ?></wp:status> |
| | 143 | <wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent> |
| | 144 | <wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order> |
| | 145 | <wp:post_type><?php echo $post->post_type; ?></wp:post_type> |
| | 146 | <wp:post_password><?php echo $post->post_password; ?></wp:post_password> |
| | 147 | <?php |
| | 148 | if ($post->post_type == 'attachment') { ?> |
| | 149 | <wp:attachment_url><?php echo wp_get_attachment_url($post->ID); ?></wp:attachment_url> |
| | 150 | <?php } ?> |
| | 151 | <?php |
| | 152 | $postmeta = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d", $post->ID) ); |
| | 153 | if ( $postmeta ) { |
| | 154 | ?> |
| | 155 | <?php foreach( $postmeta as $meta ) { ?> |
| | 156 | <wp:postmeta> |
| | 157 | <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key> |
| | 158 | <wp:meta_value><?Php echo $meta->meta_value; ?></wp:meta_value> |
| | 159 | </wp:postmeta> |
| | 160 | <?php } ?> |
| | 161 | <?php } ?> |
| | 162 | <?php |
| | 163 | $comments = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d", $post->ID) ); |
| | 164 | if ( $comments ) { foreach ( $comments as $c ) { ?> |
| | 165 | <wp:comment> |
| | 166 | <wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id> |
| | 167 | <wp:comment_author><?php echo wxr_cdata($c->comment_author); ?></wp:comment_author> |
| | 168 | <wp:comment_author_email><?php echo $c->comment_author_email; ?></wp:comment_author_email> |
| | 169 | <wp:comment_author_url><?php echo $c->comment_author_url; ?></wp:comment_author_url> |
| | 170 | <wp:comment_author_IP><?php echo $c->comment_author_IP; ?></wp:comment_author_IP> |
| | 171 | <wp:comment_date><?php echo $c->comment_date; ?></wp:comment_date> |
| | 172 | <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?></wp:comment_date_gmt> |
| | 173 | <wp:comment_content><?php echo wxr_cdata($c->comment_content) ?></wp:comment_content> |
| | 174 | <wp:comment_approved><?php echo $c->comment_approved; ?></wp:comment_approved> |
| | 175 | <wp:comment_type><?php echo $c->comment_type; ?></wp:comment_type> |
| | 176 | <wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent> |
| | 177 | <wp:comment_user_id><?php echo $c->user_id; ?></wp:comment_user_id> |
| | 178 | </wp:comment> |
| | 179 | <?php } } ?> |
| | 180 | </item> |
| | 181 | <?php } } } ?> |
| | 182 | </channel> |
| | 183 | </rss> |
| | 184 | <?php |
| | 185 | } |
| | 186 | |
| 218 | | <!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. --> |
| 219 | | <!-- It contains information about your blog's posts, comments, and categories. --> |
| 220 | | <!-- You may use this file to transfer that content from one site to another. --> |
| 221 | | <!-- This file is not intended to serve as a complete backup of your blog. --> |
| 222 | | |
| 223 | | <!-- To import this information into a WordPress blog follow these steps. --> |
| 224 | | <!-- 1. Log into that blog as an administrator. --> |
| 225 | | <!-- 2. Go to Tools: Import in the blog's admin panels (or Manage: Import in older versions of WordPress). --> |
| 226 | | <!-- 3. Choose "WordPress" from the list. --> |
| 227 | | <!-- 4. Upload this file using the form provided on that page. --> |
| 228 | | <!-- 5. You will first be asked to map the authors in this export file to users --> |
| 229 | | <!-- on the blog. For each author, you may choose to map to an --> |
| 230 | | <!-- existing user on the blog or to create a new user --> |
| 231 | | <!-- 6. WordPress will then import each of the posts, comments, and categories --> |
| 232 | | <!-- contained in this file into your blog --> |
| 233 | | |
| 234 | | <?php the_generator('export');?> |
| 235 | | <rss version="2.0" |
| 236 | | xmlns:excerpt="http://wordpress.org/export/<?php echo WXR_VERSION; ?>/excerpt/" |
| 237 | | xmlns:content="http://purl.org/rss/1.0/modules/content/" |
| 238 | | xmlns:wfw="http://wellformedweb.org/CommentAPI/" |
| 239 | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| 240 | | xmlns:wp="http://wordpress.org/export/<?php echo WXR_VERSION; ?>/" |
| 241 | | > |
| 242 | | |
| 243 | | <channel> |
| 244 | | <title><?php bloginfo_rss('name'); ?></title> |
| 245 | | <link><?php bloginfo_rss('url') ?></link> |
| 246 | | <description><?php bloginfo_rss("description") ?></description> |
| 247 | | <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate> |
| 248 | | <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator> |
| 249 | | <language><?php echo get_option('rss_language'); ?></language> |
| 250 | | <wp:wxr_version><?php echo WXR_VERSION; ?></wp:wxr_version> |
| 251 | | <wp:base_site_url><?php echo wxr_site_url(); ?></wp:base_site_url> |
| 252 | | <wp:base_blog_url><?php bloginfo_rss('url'); ?></wp:base_blog_url> |
| 253 | | <?php if ( $cats ) : foreach ( $cats as $c ) : ?> |
| 254 | | <wp:category><wp:category_nicename><?php echo $c->slug; ?></wp:category_nicename><wp:category_parent><?php echo $c->parent ? $cats[$c->parent]->name : ''; ?></wp:category_parent><?php wxr_cat_name($c); ?><?php wxr_category_description($c); ?></wp:category> |
| 255 | | <?php endforeach; endif; ?> |
| 256 | | <?php if ( $tags ) : foreach ( $tags as $t ) : ?> |
| 257 | | <wp:tag><wp:tag_slug><?php echo $t->slug; ?></wp:tag_slug><?php wxr_tag_name($t); ?><?php wxr_tag_description($t); ?></wp:tag> |
| 258 | | <?php endforeach; endif; ?> |
| 259 | | <?php do_action('rss2_head'); ?> |
| 260 | | <?php if ($post_ids) { |
| 261 | | global $wp_query; |
| 262 | | $wp_query->in_the_loop = true; // Fake being in the loop. |
| 263 | | // fetch 20 posts at a time rather than loading the entire table into memory |
| 264 | | while ( $next_posts = array_splice($post_ids, 0, 20) ) { |
| 265 | | $where = "WHERE ID IN (".join(',', $next_posts).")"; |
| 266 | | $posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC"); |
| 267 | | foreach ($posts as $post) { |
| 268 | | // Don't export revisions. They bloat the export. |
| 269 | | if ( 'revision' == $post->post_type ) |
| 270 | | continue; |
| 271 | | setup_postdata($post); ?> |
| 272 | | <item> |
| 273 | | <title><?php echo apply_filters('the_title_rss', $post->post_title); ?></title> |
| 274 | | <link><?php the_permalink_rss() ?></link> |
| 275 | | <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> |
| 276 | | <dc:creator><?php echo wxr_cdata(get_the_author()); ?></dc:creator> |
| 277 | | <?php wxr_post_taxonomy() ?> |
| 278 | | |
| 279 | | <guid isPermaLink="false"><?php the_guid(); ?></guid> |
| 280 | | <description></description> |
| 281 | | <content:encoded><?php echo wxr_cdata( apply_filters('the_content_export', $post->post_content) ); ?></content:encoded> |
| 282 | | <excerpt:encoded><?php echo wxr_cdata( apply_filters('the_excerpt_export', $post->post_excerpt) ); ?></excerpt:encoded> |
| 283 | | <wp:post_id><?php echo $post->ID; ?></wp:post_id> |
| 284 | | <wp:post_date><?php echo $post->post_date; ?></wp:post_date> |
| 285 | | <wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt> |
| 286 | | <wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status> |
| 287 | | <wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status> |
| 288 | | <wp:post_name><?php echo $post->post_name; ?></wp:post_name> |
| 289 | | <wp:status><?php echo $post->post_status; ?></wp:status> |
| 290 | | <wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent> |
| 291 | | <wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order> |
| 292 | | <wp:post_type><?php echo $post->post_type; ?></wp:post_type> |
| 293 | | <wp:post_password><?php echo $post->post_password; ?></wp:post_password> |
| 294 | | <?php |
| 295 | | if ($post->post_type == 'attachment') { ?> |
| 296 | | <wp:attachment_url><?php echo wp_get_attachment_url($post->ID); ?></wp:attachment_url> |
| 297 | | <?php } ?> |
| 298 | | <?php |
| 299 | | $postmeta = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d", $post->ID) ); |
| 300 | | if ( $postmeta ) { |
| 301 | | ?> |
| 302 | | <?php foreach( $postmeta as $meta ) { ?> |
| 303 | | <wp:postmeta> |
| 304 | | <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key> |
| 305 | | <wp:meta_value><?Php echo $meta->meta_value; ?></wp:meta_value> |
| 306 | | </wp:postmeta> |
| 307 | | <?php } ?> |
| 308 | | <?php } ?> |
| 309 | | <?php |
| 310 | | $comments = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d", $post->ID) ); |
| 311 | | if ( $comments ) { foreach ( $comments as $c ) { ?> |
| 312 | | <wp:comment> |
| 313 | | <wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id> |
| 314 | | <wp:comment_author><?php echo wxr_cdata($c->comment_author); ?></wp:comment_author> |
| 315 | | <wp:comment_author_email><?php echo $c->comment_author_email; ?></wp:comment_author_email> |
| 316 | | <wp:comment_author_url><?php echo $c->comment_author_url; ?></wp:comment_author_url> |
| 317 | | <wp:comment_author_IP><?php echo $c->comment_author_IP; ?></wp:comment_author_IP> |
| 318 | | <wp:comment_date><?php echo $c->comment_date; ?></wp:comment_date> |
| 319 | | <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?></wp:comment_date_gmt> |
| 320 | | <wp:comment_content><?php echo wxr_cdata($c->comment_content) ?></wp:comment_content> |
| 321 | | <wp:comment_approved><?php echo $c->comment_approved; ?></wp:comment_approved> |
| 322 | | <wp:comment_type><?php echo $c->comment_type; ?></wp:comment_type> |
| 323 | | <wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent> |
| 324 | | <wp:comment_user_id><?php echo $c->user_id; ?></wp:comment_user_id> |
| 325 | | </wp:comment> |
| 326 | | <?php } } ?> |
| 327 | | </item> |
| 328 | | <?php } } } ?> |
| 329 | | </channel> |
| 330 | | </rss> |
| 331 | | <?php |
| 332 | | } |
| 333 | | |
| 334 | | ?> |