prepare(" WHERE post_author = %d ", $author_id);
}
// grab a snapshot of post IDs, just in case it changes during the export
$post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts $where ORDER BY post_date_gmt ASC");
$categories = (array) get_categories('get=all');
$tags = (array) get_tags('get=all');
/**
* {@internal Missing Short Description}}
*
* @since unknown
*
* @param unknown_type $categories
*/
function wxr_missing_parents($categories) {
if ( !is_array($categories) || empty($categories) )
return array();
foreach ( $categories as $category )
$parents[$category->term_id] = $category->parent;
$parents = array_unique(array_diff($parents, array_keys($parents)));
if ( $zero = array_search('0', $parents) )
unset($parents[$zero]);
return $parents;
}
while ( $parents = wxr_missing_parents($categories) ) {
$found_parents = get_categories("include=" . join(', ', $parents));
if ( is_array($found_parents) && count($found_parents) )
$categories = array_merge($categories, $found_parents);
else
break;
}
// Put them in order to be inserted with no child going before its parent
$pass = 0;
$passes = 1000 + count($categories);
while ( ( $cat = array_shift($categories) ) && ++$pass < $passes ) {
if ( $cat->parent == 0 || isset($cats[$cat->parent]) ) {
$cats[$cat->term_id] = $cat;
} else {
$categories[] = $cat;
}
}
unset($categories);
/**
* Place string in CDATA tag.
*
* @since unknown
*
* @param string $str String to place in XML CDATA tag.
*/
function wxr_cdata($str) {
if ( seems_utf8($str) == false )
$str = utf8_encode($str);
// $str = ent2ncr(wp_specialchars($str));
$str = "";
return $str;
}
/**
* {@internal Missing Short Description}}
*
* @since unknown
*
* @return string Site URL.
*/
function wxr_site_url() {
global $current_site;
// mu: the base url
if ( isset($current_site->domain) ) {
return 'http://'.$current_site->domain.$current_site->path;
}
// wp: the blog url
else {
return get_bloginfo_rss('url');
}
}
/**
* {@internal Missing Short Description}}
*
* @since unknown
*
* @param object $c Category Object
*/
function wxr_cat_name($c) {
if ( empty($c->name) )
return;
echo '' . wxr_cdata($c->name) . '';
}
/**
* {@internal Missing Short Description}}
*
* @since unknown
*
* @param object $c Category Object
*/
function wxr_category_description($c) {
if ( empty($c->description) )
return;
echo '' . wxr_cdata($c->description) . '';
}
/**
* {@internal Missing Short Description}}
*
* @since unknown
*
* @param object $t Tag Object
*/
function wxr_tag_name($t) {
if ( empty($t->name) )
return;
echo '' . wxr_cdata($t->name) . '';
}
/**
* {@internal Missing Short Description}}
*
* @since unknown
*
* @param object $t Tag Object
*/
function wxr_tag_description($t) {
if ( empty($t->description) )
return;
echo '' . wxr_cdata($t->description) . '';
}
/**
* {@internal Missing Short Description}}
*
* @since unknown
*/
function wxr_post_taxonomy() {
$categories = get_the_category();
$tags = get_the_tags();
$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";
// forwards compatibility as above
$the_list .= "\n\t\tslug}\">\n";
}
echo $the_list;
}
echo '\n";
?>
http://wordpress.org/?v=
slug; ?>parent ? $cats[$c->parent]->name : ''; ?>
slug; ?>
in_the_loop = true; // Fake being in the loop.
// fetch 20 posts at a time rather than loading the entire table into memory
while ( $next_posts = array_splice($post_ids, 0, 20) ) {
$where = "WHERE ID IN (".join(',', $next_posts).")";
$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC");
foreach ($posts as $post) {
// Don't export revisions. They bloat the export.
if ( 'revision' == $post->post_type )
continue;
setup_postdata($post); ?>
-
post_title); ?>
post_content) ); ?>
post_excerpt) ); ?>
ID; ?>
post_date; ?>
post_date_gmt; ?>
comment_status; ?>
ping_status; ?>
post_name; ?>
post_status; ?>
post_parent; ?>
menu_order; ?>
post_type; ?>
post_password; ?>
post_type == 'attachment') { ?>
ID); ?>
get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d", $post->ID) );
if ( $postmeta ) {
?>
meta_key; ?>
meta_value; ?>
get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d", $post->ID) );
if ( $comments ) { foreach ( $comments as $c ) { ?>
comment_ID; ?>
comment_author); ?>
comment_author_email; ?>
comment_author_url; ?>
comment_author_IP; ?>
comment_date; ?>
comment_date_gmt; ?>
comment_content) ?>
comment_approved; ?>
comment_type; ?>
comment_parent; ?>
user_id; ?>