- <content:encoded><?php echo wxr_cdata( apply_filters( 'the_content_export', $post->post_content ) ); ?></content:encoded>
- <excerpt:encoded><?php echo wxr_cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) ); ?></excerpt:encoded>
- <wp:post_id><?php echo $post->ID; ?></wp:post_id>
- <wp:post_date><?php echo $post->post_date; ?></wp:post_date>
- <wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt>
- <wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status>
- <wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status>
- <wp:post_name><?php echo $post->post_name; ?></wp:post_name>
- <wp:status><?php echo $post->post_status; ?></wp:status>
- <wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent>
- <wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order>
- <wp:post_type><?php echo $post->post_type; ?></wp:post_type>
- <wp:post_password><?php echo $post->post_password; ?></wp:post_password>
- <wp:is_sticky><?php echo $is_sticky; ?></wp:is_sticky>
- <?php
- if ( $post->post_type == 'attachment' ) { ?>
- <wp:attachment_url><?php echo wp_get_attachment_url( $post->ID ); ?></wp:attachment_url>
- <?php } ?>
- <?php
- $postmeta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->postmeta WHERE post_id = %d", $post->ID ) );
- if ( $postmeta ) {
+ <content:encoded><?php
+ /**
+ * Filter the post content used for WXR exports.
+ *
+ * @since 2.5.0
+ *
+ * @param string $post_content Content of the current post.
+ */
+ echo wxr_cdata( apply_filters( 'the_content_export', $post->post_content ) );
+ ?></content:encoded>
+ <excerpt:encoded><?php
+ /**
+ * Filter the post excerpt used for WXR exports.
+ *
+ * @since 2.6.0
+ *
+ * @param string $post_excerpt Excerpt for the current post.
+ */
+ echo wxr_cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) );
+ ?></excerpt:encoded>
+ <wp:post_id><?php echo intval( $post->ID ); ?></wp:post_id>
+ <wp:post_date><?php echo wxr_cdata( $post->post_date ); ?></wp:post_date>
+ <wp:post_date_gmt><?php echo wxr_cdata( $post->post_date_gmt ); ?></wp:post_date_gmt>
+ <wp:comment_status><?php echo wxr_cdata( $post->comment_status ); ?></wp:comment_status>
+ <wp:ping_status><?php echo wxr_cdata( $post->ping_status ); ?></wp:ping_status>
+ <wp:post_name><?php echo wxr_cdata( $post->post_name ); ?></wp:post_name>
+ <wp:status><?php echo wxr_cdata( $post->post_status ); ?></wp:status>
+ <wp:post_parent><?php echo intval( $post->post_parent ); ?></wp:post_parent>
+ <wp:menu_order><?php echo intval( $post->menu_order ); ?></wp:menu_order>
+ <wp:post_type><?php echo wxr_cdata( $post->post_type ); ?></wp:post_type>
+ <wp:post_password><?php echo wxr_cdata( $post->post_password ); ?></wp:post_password>
+ <wp:is_sticky><?php echo intval( $is_sticky ); ?></wp:is_sticky>
+<?php if ( $post->post_type == 'attachment' ) : ?>
+ <wp:attachment_url><?php echo wxr_cdata( wp_get_attachment_url( $post->ID ) ); ?></wp:attachment_url>
+<?php endif; ?>
+<?php wxr_post_taxonomy(); ?>
+<?php $postmeta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->postmeta WHERE post_id = %d", $post->ID ) );
+ foreach ( $postmeta as $meta ) :
+ /**
+ * Filter whether to selectively skip post meta used for WXR exports.
+ *
+ * Returning a truthy value to the filter will skip the current meta
+ * object from being exported.
+ *
+ * @since 3.3.0
+ *
+ * @param bool $skip Whether to skip the current post meta. Default false.
+ * @param string $meta_key Current meta key.
+ * @param object $meta Current meta object.
+ */
+ if ( apply_filters( 'wxr_export_skip_postmeta', false, $meta->meta_key, $meta ) )
+ continue;