web-dev-qa-db-ja.com

SEO Meta Desc "カスタムフィールド"を抜粋フィールドにコピーしますか?

私は本当に私の古い投稿のすべてを取り、そして自動的に私たちが書いたメタディスクリプション(現在All In One SEO Packを使って各投稿に対して行われます)を使い、それらを私たちの投稿の抜粋にもなるようにコピーします。

AIO SEOの説明で使用されるカスタムフィールドは_aioseop_descriptionです。

これを達成する方法について誰かが何か考えがありますか?

1
Drewdavid

これを実行する前にデータベースをバックアップしてください

コードはかなり単純明快で、ローカルのWordPressでテストされています。
あなたがライブサイトを扱っていると思うので、アドバイスは念のためのものです。

コードをPHPファイルにコピーし、それをpluginsフォルダにアップロードしてアクティブにします。

  1. 起動時に、すべての投稿タイプ_ postsを反復処理し、抜粋があるかどうかを確認します。
  2. そうでない場合は、All In Oneの説明があるかどうかを確認します。
  3. ある場合は、この情報を抜粋に入力してください。
<?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);
            }
        }
    }   
}

ドキュメント: register_activation_hookget_postsget_postwp_update_post

2
brasofilo

私はこの答えを見つけることができませんでした、それで私はオールインワンSEOパックからの説明を加えて、あなたのWordPressブログのすべての記事のための説明としてそれを保存するプラグインを開発しました。

こちらからダウンロードできます こちら 。必ず最初にデータベースをバックアップしてください。

0
Dan Pearce