Copy SEO Meta Desc “Custom Field” to Excerpt field?

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.

  1. On activation, it will iterate through all the posts post type and check if it has an excerpt.
  2. If not, check if there is an All In One description.
  3. 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.

Leave a Comment