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

I’d really like to take all of my old posts, and automatically use the meta descriptions we have written – currently done for each post using All In One SEO Pack – and copy them to also be our post excerpts.

The custom field used by AIO SEO description is _aioseop_description.

Read More

Would anyone have any idea how to accomplish this?

Related posts

Leave a Reply

2 comments

  1. 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.

  2. I couldn’t find the answer for this, so I developed a plugin that will add the description from the All in One SEO Pack and save it as a description for all the posts in your WordPress blog.

    You can download it from here. Be sure to backup your database first.