Please, backup your database before running this.
The code is pretty straight forward and tested in a local WordPress.
The advice is just for precaution sake, as I suppose you're dealing with a live site.
Copy the code into a PHP file, upload it to the plugins folder and activate.
- On activation, it will iterate through all the
posts
post type and check if it has an excerpt.
- If not, check if there is an All In One description.
- If there is, fill the excerpt with this info.
<?php
/*
Plugin Name: AIOSEOP to Excerpt
Plugin URI: http://wordpress.stackexchange.com/q/70990/12615
*/
register_activation_hook( __FILE__, 'wpse_70990_activation_run' );
function wpse_70990_activation_run()
{
$args = array(
'post_type' => 'post'
, 'numberposts' => -1
, 'post_status' => published
);
$posts = get_posts( $args );
foreach ( $posts as $post )
{
if( '' == $post->post_excerpt )
{
$aioseop = get_post_meta( $post->ID, '_aioseop_description' ,true);
if( '' != $aioseop )
{
$po = array();
$po = get_post( $post->ID, 'ARRAY_A' );
$po['post_excerpt'] = $aioseop;
wp_update_post($po);
}
}
}
}
Documentation: register_activation_hook
, get_posts
, get_post
, wp_update_post
.