diff --git a/wp-admin/includes/export.php b/wp-admin/includes/export.php
index 0a64a40b16..1877b05f37 100644
--- a/wp-admin/includes/export.php
+++ b/wp-admin/includes/export.php
@@ -223,27 +223,24 @@ function wxr_term_description($t) {
* @since unknown
*/
function wxr_post_taxonomy() {
- $categories = get_the_category();
- $tags = get_the_tags();
+ global $post;
+
$the_list = '';
$filter = 'rss';
- if ( !empty($categories) ) foreach ( (array) $categories as $category ) {
- $cat_name = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
- // for backwards compatibility
- $the_list .= "\n\t\t\n";
- // forwards compatibility: use a unique identifier for each cat to avoid clashes
- // http://trac.wordpress.org/ticket/5447
- $the_list .= "\n\t\tslug}\">\n";
- }
-
- if ( !empty($tags) ) foreach ( (array) $tags as $tag ) {
- $tag_name = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
- $the_list .= "\n\t\t\n";
+ $taxonomies = get_object_taxonomies('post');
+ $terms = wp_get_post_terms($post->ID, $taxonomies);
+ foreach ( (array) $terms as $term ) {
+ $domain = ( 'post_tag' == $term->taxonomy ) ? 'tag' : $term->taxonomy;
+ $term_name = sanitize_term_field('name', $term->name, $term->term_id, $term->taxonomy, $filter);
+ // Back compat.
+ if ( 'category' == $term->taxonomy )
+ $the_list .= "\n\t\t\n";
+ elseif ( 'post_tag' == $term->taxonomy )
+ $the_list .= "\n\t\t\n";
// forwards compatibility as above
- $the_list .= "\n\t\tslug}\">\n";
+ $the_list .= "\n\t\tslug}\">\n";
}
-
echo $the_list;
}