web-dev-qa-db-ja.com

注目の画像を除くすべての投稿メタを削除

私の目的は私のデータベースエントリを片付けることです。私は多くの役に立たないpost_metaを追加したブロガーからの移行をしました。すべての投稿メタをリセット/削除するオプションを持つプラグイン(db reset)を見つけました。ただし、投稿メタをすべて削除すると、おすすめの画像(投稿サムネイル)の設定​​が失われます。

私はphpmyadminにはあまり慣れていません。注目の画像を除くすべての投稿メタを削除するにはどうすればよいですか。

1
IXN

以下のコードは、投稿のサムネイルを除くすべての投稿メタを削除するのに役立ちます。

    function kv_delete_all_meta_except_featuredimg(){
    $args = array( 'posts_per_page' => -1, 'post_status' => 'any',  'post_type' => array('attachment', 'page','post')); 
    $articles= get_posts( $args );

    foreach($articles as $article){
        if($article->post_type == 'attachment'){
            $myvals = get_post_meta($article->ID);
            foreach($myvals as $key=>$val)  {

                if($key == '_wp_attached_file' || $key == '_wp_attachment_metadata'){} else {
                    delete_post_meta($article->ID, $key);

                }
            }
        }else {
            $myvals = get_post_meta($article->ID);
            foreach($myvals as $key=>$val)  {
                if($key != '_thumbnail_id' ){
                    delete_post_meta($article->ID, $key);
                }
            }
        }
    }


}
add_action('init','kv_delete_all_meta_except_featuredimg');

Note:***覚えておくこれは全ての投稿メタキーとその関連値を削除します。なので、先に進む前にバックアップを取ってください。この関数をあなたのテーマfunctions.phpに追加するだけです。ここで私はあなたがこれらの投稿タイプattachment, post, pageだけを持っていると仮定しました。追加の投稿タイプがある場合は、それを追加してください。

あなたが私がそれについての記事を書いた詳細についてはここを読むことができます。 Kvcodes

1
Kvvaradha