2006-10-26 00:55:05 +02:00
< ? php
2008-08-11 22:26:31 +02:00
/**
* WordPress Export Administration Panel
*
* @ package WordPress
* @ subpackage Administration
*/
/** Load WordPress Bootstrap */
2006-10-26 00:55:05 +02:00
require_once ( 'admin.php' );
2008-08-11 22:26:31 +02:00
2009-08-02 04:23:54 +02:00
if ( ! current_user_can ( 'edit_files' ) )
2010-04-30 03:54:32 +02:00
wp_die ( __ ( 'You do not have sufficient permissions to export the content of this site.' ));
2009-08-02 04:23:54 +02:00
2008-08-11 22:26:31 +02:00
/** Load WordPress export API */
2010-04-18 08:14:45 +02:00
require_once ( './includes/export.php' );
2006-11-18 08:31:29 +01:00
$title = __ ( 'Export' );
2006-10-26 00:55:05 +02:00
2008-02-05 07:47:27 +01:00
if ( isset ( $_GET [ 'download' ] ) ) {
2010-03-03 17:45:40 +01:00
$author = isset ( $_GET [ 'author' ]) ? $_GET [ 'author' ] : 'all' ;
2010-05-04 19:31:36 +02:00
$taxonomy = array ();
foreach ( get_taxonomies ( array ( 'show_ui' => true ) ) as $tax )
$taxonomy [ $tax ] = ! empty ( $_GET [ 'taxonomy' ][ $tax ] ) ? $_GET [ 'taxonomy' ][ $tax ] : 'all' ;
2010-03-03 17:45:40 +01:00
$post_type = isset ( $_GET [ 'post_type' ]) ? stripslashes_deep ( $_GET [ 'post_type' ]) : 'all' ;
$status = isset ( $_GET [ 'status' ]) ? stripslashes_deep ( $_GET [ 'status' ]) : 'all' ;
$mm_start = isset ( $_GET [ 'mm_start' ]) ? $_GET [ 'mm_start' ] : 'all' ;
$mm_end = isset ( $_GET [ 'mm_end' ]) ? $_GET [ 'mm_end' ] : 'all' ;
2010-05-04 19:31:36 +02:00
if ( $mm_start != 'all' ) {
$start_date = sprintf ( " %04d-%02d-%02d " , substr ( $mm_start , 0 , 4 ), substr ( $mm_start , 5 , 2 ), 1 );
2010-03-03 17:45:40 +01:00
} else {
$start_date = 'all' ;
}
2010-05-04 19:31:36 +02:00
if ( $mm_end != 'all' ) {
$end_date = sprintf ( " %04d-%02d-%02d " , substr ( $mm_end , 0 , 4 ), substr ( $mm_end , 5 , 2 ), 1 );
2010-03-03 17:45:40 +01:00
} else {
$end_date = 'all' ;
}
2010-05-04 19:31:36 +02:00
export_wp ( array ( 'author' => $author , 'taxonomy' => $taxonomy , 'post_type' => $post_type , 'post_status' => $status , 'start_date' => $start_date , 'end_date' => $end_date ) );
2007-11-15 06:32:33 +01:00
die ();
}
2006-10-26 00:55:05 +02:00
require_once ( 'admin-header.php' );
2010-03-03 17:45:40 +01:00
2010-05-07 23:53:11 +02:00
$dateoptions = $edateoptions = '' ;
2010-05-07 22:51:01 +02:00
$types = " ' " . implode ( " ', ' " , get_post_types ( array ( 'public' => true , 'can_export' => true ), 'names' )) . " ' " ;
$stati = " ' " . implode ( " ', ' " , get_post_stati ( array ( 'internal' => false ), 'names' )) . " ' " ;
2010-05-07 23:53:11 +02:00
if ( $monthyears = $wpdb -> get_results ( " SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, YEAR(DATE_ADD(post_date, INTERVAL 1 MONTH)) AS `eyear`, MONTH(DATE_ADD(post_date, INTERVAL 1 MONTH)) AS `emonth` FROM $wpdb->posts WHERE post_type IN ( $types ) AND post_status IN ( $stati ) ORDER BY post_date ASC " ) ) {
foreach ( $monthyears as $k => $monthyear )
$monthyears [ $k ] -> lmonth = $wp_locale -> get_month ( $monthyear -> month , 2 );
for ( $s = 0 , $e = count ( $monthyears ) - 1 ; $e >= 0 ; $s ++ , $e -- ) {
$dateoptions .= " \t <option value= \" " . $monthyears [ $s ] -> year . '-' . zeroise ( $monthyears [ $s ] -> month , 2 ) . '">' . $monthyears [ $s ] -> lmonth . ' ' . $monthyears [ $s ] -> year . " </option> \n " ;
$edateoptions .= " \t <option value= \" " . $monthyears [ $e ] -> eyear . '-' . zeroise ( $monthyears [ $e ] -> emonth , 2 ) . '">' . $monthyears [ $e ] -> lmonth . ' ' . $monthyears [ $e ] -> year . " </option> \n " ;
2010-05-04 19:31:36 +02:00
}
}
?>
2006-10-26 00:55:05 +02:00
< div class = " wrap " >
2008-11-26 14:51:25 +01:00
< ? php screen_icon (); ?>
2009-05-18 17:11:07 +02:00
< h2 >< ? php echo esc_html ( $title ); ?> </h2>
2008-10-17 22:02:03 +02:00
2006-12-05 08:15:12 +01:00
< p >< ? php _e ( 'When you click the button below WordPress will create an XML file for you to save to your computer.' ); ?> </p>
2008-03-09 23:14:49 +01:00
< p >< ? php _e ( 'This format, which we call WordPress eXtended RSS or WXR, will contain your posts, pages, comments, custom fields, categories, and tags.' ); ?> </p>
2010-04-30 03:54:32 +02:00
< p >< ? php _e ( 'Once you’ve saved the download file, you can use the Import function on another WordPress site to import this site.' ); ?> </p>
2006-10-26 00:55:05 +02:00
< form action = " " method = " get " >
2008-02-27 20:18:21 +01:00
< h3 >< ? php _e ( 'Options' ); ?> </h3>
2006-11-19 00:13:15 +01:00
2008-02-27 20:18:21 +01:00
< table class = " form-table " >
2006-11-19 00:13:15 +01:00
< tr >
2010-03-03 17:45:40 +01:00
< th >< label for = " mm_start " >< ? php _e ( 'Restrict Date' ); ?> </label></th>
2010-05-04 19:31:36 +02:00
< td >< strong >< ? php _e ( 'Start:' ); ?> </strong>
2010-03-03 17:45:40 +01:00
< select name = " mm_start " id = " mm_start " >
2010-05-04 19:31:36 +02:00
< option value = " all " selected = " selected " >< ? php _e ( 'All Dates' ); ?> </option>
2010-05-07 23:53:11 +02:00
< ? php echo $dateoptions ; ?>
2010-05-04 19:31:36 +02:00
</ select > < br />
< strong >< ? php _e ( 'End:' ); ?> </strong>
2010-03-03 17:45:40 +01:00
< select name = " mm_end " id = " mm_end " >
2010-05-04 19:31:36 +02:00
< option value = " all " selected = " selected " >< ? php _e ( 'All Dates' ); ?> </option>
2010-05-07 23:53:11 +02:00
< ? php echo $edateoptions ; ?>
2010-05-04 19:31:36 +02:00
</ select >
2010-03-03 17:45:40 +01:00
</ td >
</ tr >
< tr >
2008-05-04 12:37:06 +02:00
< th >< label for = " author " >< ? php _e ( 'Restrict Author' ); ?> </label></th>
2006-11-19 00:13:15 +01:00
< td >
2008-05-04 12:37:06 +02:00
< select name = " author " id = " author " >
2008-02-14 01:57:29 +01:00
< option value = " all " selected = " selected " >< ? php _e ( 'All Authors' ); ?> </option>
2006-11-19 00:13:15 +01:00
< ? php
2010-05-04 19:31:36 +02:00
$authors = $wpdb -> get_results ( " SELECT DISTINCT u.id, u.display_name FROM $wpdb->users u INNER JOIN $wpdb->posts p WHERE u.id = p.post_author ORDER BY u.display_name " );
foreach ( ( array ) $authors as $author ) {
echo " <option value=' { $author -> id } '> { $author -> display_name } </option> \n " ;
}
2010-03-03 17:45:40 +01:00
?>
</ select >
</ td >
</ tr >
< tr >
2010-05-04 19:31:36 +02:00
< th >< ? php _e ( 'Restrict Taxonomies' ); ?> </th>
2010-03-03 17:45:40 +01:00
< td >
2010-05-04 19:31:36 +02:00
< ? php foreach ( get_taxonomies ( array ( 'show_ui' => true ), 'objects' ) as $tax_obj ) {
$term_dropdown = wp_dropdown_categories ( array ( 'taxonomy' => $tax_obj -> name , 'hide_if_empty' => true , 'show_option_all' => __ ( 'All Terms' ), 'name' => 'taxonomy[' . $tax_obj -> name . ']' , 'id' => 'taxonomy-' . $tax_obj -> name , 'class' => '' , 'echo' => false ) );
if ( $term_dropdown )
echo '<label for="taxonomy-' . $tax_obj -> name . '">' . $tax_obj -> label . '</label>: ' . $term_dropdown . '<br/>' ;
2006-11-19 00:13:15 +01:00
}
?>
</ td >
</ tr >
2010-03-03 17:45:40 +01:00
< tr >
< th >< label for = " post_type " >< ? php _e ( 'Restrict Content' ); ?> </label></th>
< td >
< select name = " post_type " id = " post_type " >
2010-05-04 19:31:36 +02:00
< option value = " all " selected = " selected " >< ? php _e ( 'All Content' ); ?> </option>
< ? php foreach ( get_post_types ( array ( 'public' => true , 'can_export' => true ), 'objects' ) as $post_type_obj ) { ?>
2010-05-11 21:52:50 +02:00
< option value = " <?php echo $post_type_obj->name ; ?> " >< ? php echo $post_type_obj -> labels -> name ; ?> </option>
2010-05-04 19:31:36 +02:00
< ? php } ?>
2010-03-03 17:45:40 +01:00
</ select >
</ td >
</ tr >
< tr >
< th >< label for = " status " >< ? php _e ( 'Restrict Status' ); ?> </label></th>
< td >
< select name = " status " id = " status " >
2010-05-04 19:31:36 +02:00
< option value = " all " selected = " selected " >< ? php _e ( 'All Statuses' ); ?> </option>
< ? php foreach ( get_post_stati ( array ( 'internal' => false ), 'objects' ) as $post_status_obj ) { ?>
< option value = " <?php echo $post_status_obj->name ; ?> " >< ? php echo $post_status_obj -> label ; ?> </option>
< ? php } ?>
2010-03-03 17:45:40 +01:00
</ select >
</ td >
</ tr >
2006-11-19 00:13:15 +01:00
</ table >
2009-05-05 21:43:53 +02:00
< p class = " submit " >< input type = " submit " name = " submit " class = " button " value = " <?php esc_attr_e('Download Export File'); ?> " />
2006-10-26 00:55:05 +02:00
< input type = " hidden " name = " download " value = " true " />
</ p >
</ form >
</ div >
< ? php
include ( 'admin-footer.php' );
2008-10-27 21:41:05 +01:00
?>