| 26 | | function export_wp($author='', $category='', $post_type='', $status='', $start_date='', $end_date='') { |
| 27 | | global $wpdb, $post_ids, $post, $wp_taxonomies; |
| 28 | | |
| 29 | | do_action('export_wp'); |
| 30 | | |
| 31 | | if(strlen($start_date) > 4 && strlen($end_date) > 4) { |
| 32 | | $filename = 'wordpress.' . $start_date . '.' . $end_date . '.xml'; |
| 33 | | } else { |
| 34 | | $filename = 'wordpress.' . date('Y-m-d') . '.xml'; |
| 35 | | } |
| 36 | | |
| 37 | | header('Content-Description: File Transfer'); |
| 38 | | header("Content-Disposition: attachment; filename=$filename"); |
| 39 | | header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true); |
| 40 | | |
| 41 | | if ( $post_type and $post_type != 'all' ) { |
| | 26 | function export_wp( $args = array() ) { |
| | 27 | global $wpdb, $post_ids, $post, $wp_taxonomies; |
| | 28 | |
| | 29 | if ( ! is_array( $args ) ) |
| | 30 | $args = array( 'author' => $args ); |
| | 31 | |
| | 32 | $defaults = array( 'author' => null, 'taxonomy' => null, 'post_type' => null, 'post_status' => null, 'start_date' => null, 'end_date' => null ); |
| | 33 | $args = wp_parse_args( $args, $defaults ); |
| | 34 | |
| | 35 | extract($args); |
| | 36 | |
| | 37 | do_action('export_wp'); |
| | 38 | |
| | 39 | if( strlen( $start_date ) > 4 && strlen( $end_date ) > 4 ) |
| | 40 | $filename = 'wordpress.' . $start_date . '.' . $end_date . '.xml'; |
| | 41 | else |
| | 42 | $filename = 'wordpress.' . date( 'Y-m-d' ) . '.xml'; |
| | 43 | |
| | 44 | header( 'Content-Description: File Transfer' ); |
| | 45 | header( 'Content-Disposition: attachment; filename=' . $filename ); |
| | 46 | header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ), true ); |
| | 47 | |
| | 48 | if ( $post_type && $post_type != 'all' ) |
| 48 | | $where .= $wpdb->prepare("AND post_author = %d ", $author_id); |
| 49 | | } |
| 50 | | if ( $start_date and $start_date != 'all' ) { |
| 51 | | $where .= $wpdb->prepare("AND post_date >= %s ", $start_date); |
| 52 | | } |
| 53 | | if ( $end_date and $end_date != 'all' ) { |
| 54 | | $where .= $wpdb->prepare("AND post_date < %s ", $end_date); |
| 55 | | } |
| 56 | | if ( $category and $category != 'all' ) { |
| 57 | | $taxomony_id = (int) $category; |
| 58 | | $where .= $wpdb->prepare("AND ID IN (SELECT object_id FROM {$wpdb->term_relationships} " . "WHERE term_taxonomy_id = %d) ", $taxomony_id); |
| 59 | | } |
| 60 | | if ( $status and $status != 'all' ) { |
| 61 | | $where .= $wpdb->prepare("AND post_status = %s ", $status); |
| 62 | | } |
| 63 | | |
| 64 | | // grab a snapshot of post IDs, just in case it changes during the export |
| 65 | | $post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts $where ORDER BY post_date_gmt ASC"); |
| 66 | | |
| 67 | | $categories = (array) get_categories(array('get' => 'all')); |
| 68 | | $tags = (array) get_tags(array('get' => 'all')); |
| 69 | | |
| 70 | | $custom_taxonomies = $wp_taxonomies; |
| 71 | | unset($custom_taxonomies['category']); |
| 72 | | unset($custom_taxonomies['post_tag']); |
| 73 | | unset($custom_taxonomies['link_category']); |
| 74 | | $custom_taxonomies = array_keys($custom_taxonomies); |
| 75 | | $terms = (array) get_terms($custom_taxonomies, array('get' => 'all')); |
| 76 | | |
| 77 | | /** |
| 78 | | * {@internal Missing Short Description}} |
| 79 | | * |
| 80 | | * @since unknown |
| 81 | | * |
| 82 | | * @param unknown_type $categories |
| 83 | | */ |
| 84 | | function wxr_missing_parents($categories) { |
| 85 | | if ( !is_array($categories) || empty($categories) ) |
| 86 | | return array(); |
| 87 | | |
| 88 | | foreach ( $categories as $category ) |
| 89 | | $parents[$category->term_id] = $category->parent; |
| 90 | | |
| 91 | | $parents = array_unique(array_diff($parents, array_keys($parents))); |
| 92 | | |
| 93 | | if ( $zero = array_search('0', $parents) ) |
| 94 | | unset($parents[$zero]); |
| 95 | | |
| 96 | | return $parents; |
| 97 | | } |
| 98 | | |
| 99 | | while ( $parents = wxr_missing_parents($categories) ) { |
| 100 | | $found_parents = get_categories(array('include' => join(', ', $parents))); |
| 101 | | if ( is_array($found_parents) && count($found_parents) ) |
| 102 | | $categories = array_merge($categories, $found_parents); |
| 103 | | else |
| 104 | | break; |
| 105 | | } |
| 106 | | |
| 107 | | // Put them in order to be inserted with no child going before its parent |
| 108 | | $pass = 0; |
| 109 | | $passes = 1000 + count($categories); |
| 110 | | while ( ( $cat = array_shift($categories) ) && ++$pass < $passes ) { |
| 111 | | if ( $cat->parent == 0 || isset($cats[$cat->parent]) ) { |
| 112 | | $cats[$cat->term_id] = $cat; |
| 113 | | } else { |
| 114 | | $categories[] = $cat; |
| | 55 | $where .= $wpdb->prepare( "AND post_author = %d ", $author_id ); |
| 116 | | } |
| 117 | | unset($categories); |
| 118 | | |
| 119 | | /** |
| 120 | | * Place string in CDATA tag. |
| 121 | | * |
| 122 | | * @since unknown |
| 123 | | * |
| 124 | | * @param string $str String to place in XML CDATA tag. |
| 125 | | */ |
| 126 | | function wxr_cdata($str) { |
| 127 | | if ( seems_utf8($str) == false ) |
| 128 | | $str = utf8_encode($str); |
| 129 | | |
| 130 | | // $str = ent2ncr(esc_html($str)); |
| 131 | | |
| 132 | | $str = "<![CDATA[$str" . ( ( substr($str, -1) == ']' ) ? ' ' : '') . "]]>"; |
| 133 | | |
| 134 | | return $str; |
| 135 | | } |
| 136 | | |
| 137 | | /** |
| 138 | | * {@internal Missing Short Description}} |
| 139 | | * |
| 140 | | * @since unknown |
| 141 | | * |
| 142 | | * @return string Site URL. |
| 143 | | */ |
| 144 | | function wxr_site_url() { |
| 145 | | global $current_site; |
| 146 | | |
| 147 | | // mu: the base url |
| 148 | | if ( isset($current_site->domain) ) { |
| 149 | | return 'http://'.$current_site->domain.$current_site->path; |
| | 57 | |
| | 58 | if ( $start_date && $start_date != 'all' ) |
| | 59 | $where .= $wpdb->prepare( "AND post_date >= %s ", $start_date ); |
| | 60 | |
| | 61 | if ( $end_date && $end_date != 'all' ) |
| | 62 | $where .= $wpdb->prepare( "AND post_date < %s ", $end_date ); |
| | 63 | |
| | 64 | if ( $taxonomy && is_array( $taxonomy ) ) { |
| | 65 | foreach ( $taxonomy as $term_id ) { |
| | 66 | if ( $term_id != 'all' ) |
| | 67 | $where .= $wpdb->prepare( "AND ID IN (SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d) ", $term_id ); |
| | 68 | } |
| 151 | | // wp: the blog url |
| 152 | | else { |
| 153 | | return get_bloginfo_rss('url'); |
| | 70 | |
| | 71 | if ( $post_status && $post_status != 'all' ) |
| | 72 | $where .= $wpdb->prepare( "AND post_status = %s", $status ); |
| | 73 | |
| | 74 | // grab a snapshot of post IDs, just in case it changes during the export |
| | 75 | $post_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts $where ORDER BY post_date_gmt ASC" ); |
| | 76 | |
| | 77 | $categories = (array) get_categories( array( 'get' => 'all' ) ); |
| | 78 | $tags = (array) get_tags( array( 'get' => 'all' ) ); |
| | 79 | |
| | 80 | $custom_taxonomies = $wp_taxonomies; |
| | 81 | unset( $custom_taxonomies['category'] ); |
| | 82 | unset( $custom_taxonomies['post_tag'] ); |
| | 83 | unset( $custom_taxonomies['link_category'] ); |
| | 84 | $custom_taxonomies = array_keys( $custom_taxonomies ); |
| | 85 | $terms = (array) get_terms( $custom_taxonomies, array( 'get' => 'all' ) ); |
| | 86 | |
| | 87 | /** |
| | 88 | * {@internal Missing Short Description}} |
| | 89 | * |
| | 90 | * @since unknown |
| | 91 | * |
| | 92 | * @param unknown_type $categories |
| | 93 | */ |
| | 94 | function wxr_missing_parents( $categories ) { |
| | 95 | if ( ! is_array( $categories ) || empty( $categories ) ) |
| | 96 | return array(); |
| | 97 | |
| | 98 | foreach ( $categories as $category ){ |
| | 99 | $parents[$category->term_id] = $category->parent; |
| | 100 | } |
| | 101 | |
| | 102 | $parents = array_unique( array_diff( $parents, array_keys( $parents ) ) ); |
| | 103 | |
| | 104 | if ( $zero = array_search( '0', $parents ) ) |
| | 105 | unset( $parents[$zero] ); |
| | 106 | |
| | 107 | return $parents; |
| 155 | | } |
| 156 | | |
| 157 | | /** |
| 158 | | * {@internal Missing Short Description}} |
| 159 | | * |
| 160 | | * @since unknown |
| 161 | | * |
| 162 | | * @param object $c Category Object |
| 163 | | */ |
| 164 | | function wxr_cat_name($c) { |
| 165 | | if ( empty($c->name) ) |
| 166 | | return; |
| 167 | | |
| 168 | | echo '<wp:cat_name>' . wxr_cdata($c->name) . '</wp:cat_name>'; |
| 169 | | } |
| 170 | | |
| 171 | | /** |
| 172 | | * {@internal Missing Short Description}} |
| 173 | | * |
| 174 | | * @since unknown |
| 175 | | * |
| 176 | | * @param object $c Category Object |
| 177 | | */ |
| 178 | | function wxr_category_description($c) { |
| 179 | | if ( empty($c->description) ) |
| 180 | | return; |
| 181 | | |
| 182 | | echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>'; |
| 183 | | } |
| 184 | | |
| 185 | | /** |
| 186 | | * {@internal Missing Short Description}} |
| 187 | | * |
| 188 | | * @since unknown |
| 189 | | * |
| 190 | | * @param object $t Tag Object |
| 191 | | */ |
| 192 | | function wxr_tag_name($t) { |
| 193 | | if ( empty($t->name) ) |
| 194 | | return; |
| 195 | | |
| 196 | | echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>'; |
| 197 | | } |
| 198 | | |
| 199 | | /** |
| 200 | | * {@internal Missing Short Description}} |
| 201 | | * |
| 202 | | * @since unknown |
| 203 | | * |
| 204 | | * @param object $t Tag Object |
| 205 | | */ |
| 206 | | function wxr_tag_description($t) { |
| 207 | | if ( empty($t->description) ) |
| 208 | | return; |
| 209 | | |
| 210 | | echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>'; |
| 211 | | } |
| 212 | | |
| 213 | | /** |
| 214 | | * {@internal Missing Short Description}} |
| 215 | | * |
| 216 | | * @since unknown |
| 217 | | * |
| 218 | | * @param object $t Term Object |
| 219 | | */ |
| 220 | | function wxr_term_name($t) { |
| 221 | | if ( empty($t->name) ) |
| 222 | | return; |
| 223 | | |
| 224 | | echo '<wp:term_name>' . wxr_cdata($t->name) . '</wp:term_name>'; |
| 225 | | } |
| 226 | | |
| 227 | | /** |
| 228 | | * {@internal Missing Short Description}} |
| 229 | | * |
| 230 | | * @since unknown |
| 231 | | * |
| 232 | | * @param object $t Term Object |
| 233 | | */ |
| 234 | | function wxr_term_description($t) { |
| 235 | | if ( empty($t->description) ) |
| 236 | | return; |
| 237 | | |
| 238 | | echo '<wp:term_description>' . wxr_cdata($t->description) . '</wp:term_description>'; |
| 239 | | } |
| 240 | | |
| 241 | | /** |
| 242 | | * {@internal Missing Short Description}} |
| 243 | | * |
| 244 | | * @since unknown |
| 245 | | */ |
| 246 | | function wxr_post_taxonomy() { |
| 247 | | global $post; |
| 248 | | |
| 249 | | $the_list = ''; |
| 250 | | $filter = 'rss'; |
| 251 | | |
| 252 | | $taxonomies = get_object_taxonomies('post'); |
| 253 | | $terms = wp_get_post_terms($post->ID, $taxonomies); |
| 254 | | foreach ( (array) $terms as $term ) { |
| 255 | | $domain = ( 'post_tag' == $term->taxonomy ) ? 'tag' : $term->taxonomy; |
| 256 | | $term_name = sanitize_term_field('name', $term->name, $term->term_id, $term->taxonomy, $filter); |
| 257 | | // Back compat. |
| 258 | | if ( 'category' == $term->taxonomy ) |
| 259 | | $the_list .= "\n\t\t<category><![CDATA[$term_name]]></category>\n"; |
| 260 | | elseif ( 'post_tag' == $term->taxonomy ) |
| 261 | | $the_list .= "\n\t\t<category domain=\"$domain\"><![CDATA[$term_name]]></category>\n"; |
| 262 | | // forwards compatibility as above |
| 263 | | $the_list .= "\n\t\t<category domain=\"$domain\" nicename=\"{$term->slug}\"><![CDATA[$term_name]]></category>\n"; |
| | 109 | |
| | 110 | while ( $parents = wxr_missing_parents( $categories ) ) { |
| | 111 | $found_parents = get_categories( array( 'include' => join( ', ', $parents) ) ); |
| | 112 | if ( is_array( $found_parents ) && count( $found_parents ) ) |
| | 113 | $categories = array_merge( $categories, $found_parents ); |
| | 114 | else |
| | 115 | break; |
| 265 | | echo $the_list; |
| 266 | | } |
| 267 | | |
| 268 | | echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; |
| 269 | | |
| 270 | | ?> |
| | 117 | |
| | 118 | // Put them in order to be inserted with no child going before its parent |
| | 119 | $pass = 0; |
| | 120 | $passes = 1000 + count( $categories ); |
| | 121 | while ( ( $cat = array_shift( $categories ) ) && ++$pass < $passes ) { |
| | 122 | if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) ) |
| | 123 | $cats[$cat->term_id] = $cat; |
| | 124 | else |
| | 125 | $categories[] = $cat; |
| | 126 | } |
| | 127 | unset( $categories ); |
| | 128 | |
| | 129 | /** |
| | 130 | * Place string in CDATA tag. |
| | 131 | * |
| | 132 | * @since unknown |
| | 133 | * |
| | 134 | * @param string $str String to place in XML CDATA tag. |
| | 135 | */ |
| | 136 | function wxr_cdata( $str ) { |
| | 137 | if ( seems_utf8( $str ) == false ) |
| | 138 | $str = utf8_encode( $str ); |
| | 139 | |
| | 140 | // $str = ent2ncr(esc_html($str)); |
| | 141 | $str = "<![CDATA[$str" . ( ( substr( $str, -1 ) == ']' ) ? ' ' : '') . "]]>"; |
| | 142 | |
| | 143 | return $str; |
| | 144 | } |
| | 145 | |
| | 146 | /** |
| | 147 | * {@internal Missing Short Description}} |
| | 148 | * |
| | 149 | * @since unknown |
| | 150 | * |
| | 151 | * @return string Site URL. |
| | 152 | */ |
| | 153 | function wxr_site_url() { |
| | 154 | global $current_site; |
| | 155 | |
| | 156 | // mu: the base url |
| | 157 | if ( isset( $current_site->domain ) ) |
| | 158 | return 'http://' . $current_site->domain . $current_site->path; |
| | 159 | // wp: the blog url |
| | 160 | else |
| | 161 | return get_bloginfo_rss( 'url' ); |
| | 162 | } |
| | 163 | |
| | 164 | /** |
| | 165 | * {@internal Missing Short Description}} |
| | 166 | * |
| | 167 | * @since unknown |
| | 168 | * |
| | 169 | * @param object $c Category Object |
| | 170 | */ |
| | 171 | function wxr_cat_name( $c ) { |
| | 172 | if ( empty( $c->name ) ) |
| | 173 | return; |
| | 174 | |
| | 175 | echo '<wp:cat_name>' . wxr_cdata( $c->name ) . '</wp:cat_name>'; |
| | 176 | } |
| | 177 | |
| | 178 | /** |
| | 179 | * {@internal Missing Short Description}} |
| | 180 | * |
| | 181 | * @since unknown |
| | 182 | * |
| | 183 | * @param object $c Category Object |
| | 184 | */ |
| | 185 | function wxr_category_description( $c ) { |
| | 186 | if ( empty( $c->description ) ) |
| | 187 | return; |
| | 188 | |
| | 189 | echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>'; |
| | 190 | } |
| | 191 | |
| | 192 | /** |
| | 193 | * {@internal Missing Short Description}} |
| | 194 | * |
| | 195 | * @since unknown |
| | 196 | * |
| | 197 | * @param object $t Tag Object |
| | 198 | */ |
| | 199 | function wxr_tag_name( $t ) { |
| | 200 | if ( empty( $t->name ) ) |
| | 201 | return; |
| | 202 | |
| | 203 | echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>'; |
| | 204 | } |
| | 205 | |
| | 206 | /** |
| | 207 | * {@internal Missing Short Description}} |
| | 208 | * |
| | 209 | * @since unknown |
| | 210 | * |
| | 211 | * @param object $t Tag Object |
| | 212 | */ |
| | 213 | function wxr_tag_description( $t ) { |
| | 214 | if ( empty( $t->description ) ) |
| | 215 | return; |
| | 216 | |
| | 217 | echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>'; |
| | 218 | } |
| | 219 | |
| | 220 | /** |
| | 221 | * {@internal Missing Short Description}} |
| | 222 | * |
| | 223 | * @since unknown |
| | 224 | * |
| | 225 | * @param object $t Term Object |
| | 226 | */ |
| | 227 | function wxr_term_name( $t ) { |
| | 228 | if ( empty( $t->name ) ) |
| | 229 | return; |
| | 230 | |
| | 231 | echo '<wp:term_name>' . wxr_cdata($t->name) . '</wp:term_name>'; |
| | 232 | } |
| | 233 | |
| | 234 | /** |
| | 235 | * {@internal Missing Short Description}} |
| | 236 | * |
| | 237 | * @since unknown |
| | 238 | * |
| | 239 | * @param object $t Term Object |
| | 240 | */ |
| | 241 | function wxr_term_description( $t ) { |
| | 242 | if ( empty( $t->description ) ) |
| | 243 | return; |
| | 244 | |
| | 245 | echo '<wp:term_description>' . wxr_cdata($t->description) . '</wp:term_description>'; |
| | 246 | } |
| | 247 | |
| | 248 | /** |
| | 249 | * {@internal Missing Short Description}} |
| | 250 | * |
| | 251 | * @since unknown |
| | 252 | */ |
| | 253 | function wxr_post_taxonomy() { |
| | 254 | global $post; |
| | 255 | |
| | 256 | $the_list = ''; |
| | 257 | $filter = 'rss'; |
| | 258 | |
| | 259 | $taxonomies = get_object_taxonomies( 'post' ); |
| | 260 | $terms = wp_get_post_terms( $post->ID, $taxonomies ); |
| | 261 | foreach ( (array) $terms as $term ) { |
| | 262 | $domain = ( 'post_tag' == $term->taxonomy ) ? 'tag' : $term->taxonomy; |
| | 263 | $term_name = sanitize_term_field( 'name', $term->name, $term->term_id, $term->taxonomy, $filter ); |
| | 264 | // Back compat. |
| | 265 | if ( 'category' == $term->taxonomy ) |
| | 266 | $the_list .= "\n\t\t<category><![CDATA[$term_name]]></category>\n"; |
| | 267 | elseif ( 'post_tag' == $term->taxonomy ) |
| | 268 | $the_list .= "\n\t\t<category domain=\"$domain\"><![CDATA[$term_name]]></category>\n"; |
| | 269 | // forwards compatibility as above |
| | 270 | $the_list .= "\n\t\t<category domain=\"$domain\" nicename=\"{$term->slug}\"><![CDATA[$term_name]]></category>\n"; |
| | 271 | } |
| | 272 | echo $the_list; |
| | 273 | } |
| | 274 | |
| | 275 | echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; |
| | 276 | |
| | 277 | ?> |
| 305 | | <wp:base_blog_url><?php bloginfo_rss('url'); ?></wp:base_blog_url> |
| 306 | | <?php if ( $cats ) : foreach ( $cats as $c ) : ?> |
| 307 | | <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> |
| 308 | | <?php endforeach; endif; ?> |
| 309 | | <?php if ( $tags ) : foreach ( $tags as $t ) : ?> |
| 310 | | <wp:tag><wp:tag_slug><?php echo $t->slug; ?></wp:tag_slug><?php wxr_tag_name($t); ?><?php wxr_tag_description($t); ?></wp:tag> |
| 311 | | <?php endforeach; endif; ?> |
| 312 | | <?php if ( $terms ) : foreach ( $terms as $t ) : ?> |
| 313 | | <wp:term><wp:term_taxonomy><?php echo $t->taxonomy; ?></wp:term_taxonomy><wp:term_slug><?php echo $t->slug; ?></wp:term_slug><wp:term_parent><?php echo $t->parent ? $custom_taxonomies[$t->parent]->name : ''; ?></wp:term_parent><?php wxr_term_name($t); ?><?php wxr_term_description($t); ?></wp:term> |
| 314 | | <?php endforeach; endif; ?> |
| 315 | | <?php do_action('rss2_head'); ?> |
| 316 | | <?php if ($post_ids) { |
| 317 | | global $wp_query; |
| 318 | | $wp_query->in_the_loop = true; // Fake being in the loop. |
| 319 | | // fetch 20 posts at a time rather than loading the entire table into memory |
| 320 | | while ( $next_posts = array_splice($post_ids, 0, 20) ) { |
| 321 | | $where = "WHERE ID IN (".join(',', $next_posts).")"; |
| 322 | | $posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC"); |
| 323 | | foreach ($posts as $post) { |
| 324 | | setup_postdata($post); |
| | 312 | <wp:base_blog_url><?php bloginfo_rss( 'url' ); ?></wp:base_blog_url> |
| | 313 | <?php if ( $cats ) : foreach ( $cats as $c ) : ?> |
| | 314 | <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> |
| | 315 | <?php endforeach; endif; ?> |
| | 316 | <?php if ( $tags ) : foreach ( $tags as $t ) : ?> |
| | 317 | <wp:tag><wp:tag_slug><?php echo $t->slug; ?></wp:tag_slug><?php wxr_tag_name( $t ); ?><?php wxr_tag_description( $t ); ?></wp:tag> |
| | 318 | <?php endforeach; endif; ?> |
| | 319 | <?php if ( $terms ) : foreach ( $terms as $t ) : ?> |
| | 320 | <wp:term><wp:term_taxonomy><?php echo $t->taxonomy; ?></wp:term_taxonomy><wp:term_slug><?php echo $t->slug; ?></wp:term_slug><wp:term_parent><?php echo $t->parent ? $custom_taxonomies[$t->parent]->name : ''; ?></wp:term_parent><?php wxr_term_name( $t ); ?><?php wxr_term_description( $t ); ?></wp:term> |
| | 321 | <?php endforeach; endif; ?> |
| | 322 | |
| | 323 | <?php do_action( 'rss2_head' ); ?> |
| 338 | | <guid isPermaLink="false"><?php the_guid(); ?></guid> |
| 339 | | <description></description> |
| 340 | | <content:encoded><?php echo wxr_cdata( apply_filters('the_content_export', $post->post_content) ); ?></content:encoded> |
| 341 | | <excerpt:encoded><?php echo wxr_cdata( apply_filters('the_excerpt_export', $post->post_excerpt) ); ?></excerpt:encoded> |
| 342 | | <wp:post_id><?php echo $post->ID; ?></wp:post_id> |
| 343 | | <wp:post_date><?php echo $post->post_date; ?></wp:post_date> |
| 344 | | <wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt> |
| 345 | | <wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status> |
| 346 | | <wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status> |
| 347 | | <wp:post_name><?php echo $post->post_name; ?></wp:post_name> |
| 348 | | <wp:status><?php echo $post->post_status; ?></wp:status> |
| 349 | | <wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent> |
| 350 | | <wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order> |
| 351 | | <wp:post_type><?php echo $post->post_type; ?></wp:post_type> |
| 352 | | <wp:post_password><?php echo $post->post_password; ?></wp:post_password> |
| 353 | | <wp:is_sticky><?php echo $is_sticky; ?></wp:is_sticky> |
| 354 | | <?php |
| 355 | | if ($post->post_type == 'attachment') { ?> |
| 356 | | <wp:attachment_url><?php echo wp_get_attachment_url($post->ID); ?></wp:attachment_url> |
| 357 | | <?php } ?> |
| 358 | | <?php |
| 359 | | $postmeta = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d", $post->ID) ); |
| 360 | | if ( $postmeta ) { |
| 361 | | ?> |
| 362 | | <?php foreach( $postmeta as $meta ) { ?> |
| 363 | | <wp:postmeta> |
| 364 | | <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key> |
| 365 | | <wp:meta_value><?php echo wxr_cdata( $meta->meta_value ); ?></wp:meta_value> |
| 366 | | </wp:postmeta> |
| 367 | | <?php } ?> |
| 368 | | <?php } ?> |
| 369 | | <?php |
| 370 | | $comments = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d", $post->ID) ); |
| 371 | | if ( $comments ) { foreach ( $comments as $c ) { ?> |
| 372 | | <wp:comment> |
| 373 | | <wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id> |
| 374 | | <wp:comment_author><?php echo wxr_cdata($c->comment_author); ?></wp:comment_author> |
| 375 | | <wp:comment_author_email><?php echo $c->comment_author_email; ?></wp:comment_author_email> |
| 376 | | <wp:comment_author_url><?php echo esc_url_raw( $c->comment_author_url ); ?></wp:comment_author_url> |
| 377 | | <wp:comment_author_IP><?php echo $c->comment_author_IP; ?></wp:comment_author_IP> |
| 378 | | <wp:comment_date><?php echo $c->comment_date; ?></wp:comment_date> |
| 379 | | <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?></wp:comment_date_gmt> |
| 380 | | <wp:comment_content><?php echo wxr_cdata($c->comment_content) ?></wp:comment_content> |
| 381 | | <wp:comment_approved><?php echo $c->comment_approved; ?></wp:comment_approved> |
| 382 | | <wp:comment_type><?php echo $c->comment_type; ?></wp:comment_type> |
| 383 | | <wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent> |
| 384 | | <wp:comment_user_id><?php echo $c->user_id; ?></wp:comment_user_id> |
| 385 | | </wp:comment> |
| 386 | | <?php } } ?> |
| | 342 | ?> |
| | 343 | <item> |
| | 344 | <title><?php echo apply_filters( 'the_title_rss', $post->post_title ); ?></title> |
| | 345 | <link><?php the_permalink_rss() ?></link> |
| | 346 | <pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate> |
| | 347 | <dc:creator><?php echo wxr_cdata( get_the_author() ); ?></dc:creator> |
| | 348 | <?php wxr_post_taxonomy() ?> |
| | 349 | |
| | 350 | <guid isPermaLink="false"><?php the_guid(); ?></guid> |
| | 351 | <description></description> |
| | 352 | <content:encoded><?php echo wxr_cdata( apply_filters( 'the_content_export', $post->post_content ) ); ?></content:encoded> |
| | 353 | <excerpt:encoded><?php echo wxr_cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) ); ?></excerpt:encoded> |
| | 354 | <wp:post_id><?php echo $post->ID; ?></wp:post_id> |
| | 355 | <wp:post_date><?php echo $post->post_date; ?></wp:post_date> |
| | 356 | <wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt> |
| | 357 | <wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status> |
| | 358 | <wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status> |
| | 359 | <wp:post_name><?php echo $post->post_name; ?></wp:post_name> |
| | 360 | <wp:status><?php echo $post->post_status; ?></wp:status> |
| | 361 | <wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent> |
| | 362 | <wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order> |
| | 363 | <wp:post_type><?php echo $post->post_type; ?></wp:post_type> |
| | 364 | <wp:post_password><?php echo $post->post_password; ?></wp:post_password> |
| | 365 | <wp:is_sticky><?php echo $is_sticky; ?></wp:is_sticky> |
| | 366 | <?php |
| | 367 | if ( $post->post_type == 'attachment' ) { ?> |
| | 368 | <wp:attachment_url><?php echo wp_get_attachment_url( $post->ID ); ?></wp:attachment_url> |
| | 369 | <?php } ?> |
| | 370 | <?php |
| | 371 | $postmeta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->postmeta WHERE post_id = %d", $post->ID ) ); |
| | 372 | if ( $postmeta ) { |
| | 373 | ?> |
| | 374 | <?php foreach( $postmeta as $meta ) { ?> |
| | 375 | <wp:postmeta> |
| | 376 | <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key> |
| | 377 | <wp:meta_value><?php echo wxr_cdata( $meta->meta_value ); ?></wp:meta_value> |
| | 378 | </wp:postmeta> |
| | 379 | <?php } ?> |
| | 380 | <?php } ?> |
| | 381 | <?php |
| | 382 | $comments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d", $post->ID ) ); |
| | 383 | if ( $comments ) { foreach ( $comments as $c ) { ?> |
| | 384 | <wp:comment> |
| | 385 | <wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id> |
| | 386 | <wp:comment_author><?php echo wxr_cdata( $c->comment_author ); ?></wp:comment_author> |
| | 387 | <wp:comment_author_email><?php echo $c->comment_author_email; ?></wp:comment_author_email> |
| | 388 | <wp:comment_author_url><?php echo esc_url_raw( $c->comment_author_url ); ?></wp:comment_author_url> |
| | 389 | <wp:comment_author_IP><?php echo $c->comment_author_IP; ?></wp:comment_author_IP> |
| | 390 | <wp:comment_date><?php echo $c->comment_date; ?></wp:comment_date> |
| | 391 | <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?></wp:comment_date_gmt> |
| | 392 | <wp:comment_content><?php echo wxr_cdata( $c->comment_content ) ?></wp:comment_content> |
| | 393 | <wp:comment_approved><?php echo $c->comment_approved; ?></wp:comment_approved> |
| | 394 | <wp:comment_type><?php echo $c->comment_type; ?></wp:comment_type> |
| | 395 | <wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent> |
| | 396 | <wp:comment_user_id><?php echo $c->user_id; ?></wp:comment_user_id> |
| | 397 | </wp:comment> |
| | 398 | <?php } } ?> |