0) {
$start_date = sprintf( "%04d-%02d-%02d", $aa_start, $mm_start, 1 );
} else {
$start_date = 'all';
}
if($mm_end != 'all' && $aa_end > 0) {
if($mm_end == 12) {
$mm_end = 1;
$aa_end++;
} else {
$mm_end++;
}
$end_date = sprintf( "%04d-%02d-%02d", $aa_end, $mm_end, 1 );
} else {
$end_date = 'all';
}
ra_export_setup();
ra_export_wp( $author, $category, $post_type, $status, $start_date, $end_date, $terms );
die();
}
}
function ra_export_wp($author='', $category='', $post_type='', $status='', $start_date='', $end_date='', $terms = '') {
global $wpdb, $post_ids, $post;
define('WXR_VERSION', '1.0');
do_action('export_wp');
if(strlen($start_date) > 4 && strlen($end_date) > 4) {
$filename = 'wordpress.' . $start_date . '.' . $end_date . '.xml';
} else {
$filename = 'wordpress.' . date('Y-m-d') . '.xml';
}
header('Content-Description: File Transfer');
header("Content-Disposition: attachment; filename=$filename");
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
if ( $post_type and $post_type != 'all' ) {
$where = $wpdb->prepare("WHERE post_type = %s ", $post_type);
} else {
$where = "WHERE post_type != 'revision' ";
}
if ( $author and $author != 'all' ) {
$author_id = (int) $author;
$where .= $wpdb->prepare("AND post_author = %d ", $author_id);
}
if ( $start_date and $start_date != 'all' ) {
$where .= $wpdb->prepare("AND post_date >= %s ", $start_date);
}
if ( $end_date and $end_date != 'all' ) {
$where .= $wpdb->prepare("AND post_date < %s ", $end_date);
}
if ( $category and $category != 'all' and version_compare($wpdb->db_version(), '4.1', 'ge')) {
$taxomony_id = (int) $category;
$where .= $wpdb->prepare("AND ID IN (SELECT object_id FROM {$wpdb->term_relationships} " .
"WHERE term_taxonomy_id = %d) ", $taxomony_id);
}
if ( $status and $status != 'all' ) {
$where .= $wpdb->prepare("AND post_status = %s ", $status);
}
// 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');
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);
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) {
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; ?>
' .
$wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) ) . "\n";
} ?>
term_id] = $category->parent;
$parents = array_unique(array_diff($parents, array_keys($parents)));
if ( $zero = array_search('0', $parents) )
unset($parents[$zero]);
return $parents;
}
}
if(!function_exists('wxr_cdata')) {
function wxr_cdata($str) {
if ( seems_utf8($str) == false )
$str = utf8_encode($str);
// $str = ent2ncr(wp_specialchars($str));
$str = "";
return $str;
}
}
if(!function_exists('wxr_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');
}
}
}
if(!function_exists('wxr_cat_name')) {
function wxr_cat_name($c) {
if ( empty($c->name) )
return;
echo '' . wxr_cdata($c->name) . '';
}
}
if(!function_exists('wxr_category_description')) {
function wxr_category_description($c) {
if ( empty($c->description) )
return;
echo '' . wxr_cdata($c->description) . '';
}
}
if(!function_exists('wxr_tag_name')) {
function wxr_tag_name($t) {
if ( empty($t->name) )
return;
echo '' . wxr_cdata($t->name) . '';
}
}
if(!function_exists('wxr_tag_description')) {
function wxr_tag_description($t) {
if ( empty($t->description) )
return;
echo '' . wxr_cdata($t->description) . '';
}
}
if(!function_exists('wxr_post_taxonomy')) {
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;
}
}
}
?>