2017-10-06 21 views
-1

WordPressサイトで2年以上経過している投稿をすべてプログラムで削除します。約37000の記事があります。バルクで削除するのに役立つ必要があります。どのように可能ですか?削除する最も簡単な方法は何ですか?2年以上前の投稿をワードプレスサイトで削除する

+0

SQLクエリを使用します。 'mysql'やPHPMyAdminを使ってデータベース上で直接実行することも、' WP_Query'を使ってPHPコードを書くこともできます。 –

+0

あなたが試したこととあなたが直面した問題は? – AZinkey

+0

まだ何も試していませんでした。現在、私は手動でこれを行うつもりです。ありがとう –

答えて

1

は、より多くの理解のためのコードで私のコメントをお読みください。..このコードを試してみてください。機能はあなたのfunctions.phpに入ります

function get_delete_old_post() { 
    // WP_Query arguments 
    $args = array(
     'fields'   => 'ids', // Only get post ID's to improve performance 
     'post_type'  => array('post'), //post type if you are using default than it will be post 
     'posts_per_page' => '-1',//fetch all posts, 
     'date_query'  => array(
            'column' => 'post_date', 
            'before' => '-2 years' 
           )//date query for before 2 years you can set date as well here 
     ); 

    // The Query 
    $query = new WP_Query($args); 

    // The Loop 
    if ($query->have_posts()) { 
     while ($query->have_posts()) { 
      $query->the_post(); 
      //delete post code 
      //wp_trash_post(get_the_ID()); use this function if you have custom post type 
      wp_delete_post(get_the_ID(),true)//use this function if you are working with default posts 
     }  
    } else { 
     // no posts found 
     return false; 

    } 
    die(); 
    // Restore original Post Data 
    wp_reset_postdata(); 

} 

add_action('init','get_delete_old_post'); 
1

ダイレクトバルク方式は、生のSQL(DELETE FROM ...)を話すことかもしれませんが、WordPressの内部を覚えていない限り、私はこの経路を提案しません。代わりに - WordPressの多くのタスクと同じように、プラグインを探します。 this searchを考えてください。これは、先頭オプションとしてBulk Deleteを提示します。

実際、Bulk Deleteは、このような発生のために私たちがオフィスで使ったプラグインです。

幸運を祈る!

1

を実行し、このSQLクエリ

DELETE FROM `wp_posts` WHERE YEAR(CURDATE()) - YEAR(`post_date`) >= 2; 
+1

これはあなたがある時点で気を配らなければならない孤立したpostmeta-entriesを残します。 – janh

関連する問題