一定期間が経過した古い文章を削除したい場合があります。 そのような場合 WordPressでは、バッチジョブ機能を使用して削除したり、Bulk Deleteなどのプラグインを使用したりできます。 バッチジョブやプラグインを使用した削除が容易ではない場合は、phpMyAdminで古い WordPress 文を一括削除することも可能です。
phpMyAdminで古い WordPress 投稿を一括削除する
しばらく前に約2年以上経った古い文章を削除しなければならない状況が発生しました。 削除する投稿数が2,000件を超えましたが、一括操作方法で削除するのに時間がかかりすぎ、途中でエラーが発生しました。
그래서 一括削除というプラグインで試してみました。 しかし、このプラグインはマルチサイトでは機能しませんでした。 マルチサイトでこのプラグインを実行して削除しようとするとすぐに、Fatal errorエラーのフレーズが表示され、サイトが詰まっています。
方法を講じて、phpMyAdminから単純なクエリで古い文を削除する方法があることがわかりました。
私はStackoverflowの」WordPress: automatically delete posts that are x days old?"(WordPressからx日以上の投稿を自動的に削除する) ドキュメントを参照して古い記事をphpMyAdminから削除しました。
また、「Delete posts older than 2 years in wordpress ウェブサイト"(WordPress サイトから2年以上の投稿を削除する)で提示する方法も使用できます。
DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 625
特定期間間の日数計算は 日数計算サイトを使用して日数を簡単に計算できます(例:2020年1月1日から現在までの日数)。
上記のクエリを実行すると、625日を過ぎたすべての投稿が自動的に削除されます。 ただし、境界点の文章が予期せず削除される可能性があるため、実際の日数より1日を加えてテストしてみるのは安全です。 (たとえば、625日を過ぎたすべての投稿を削除するために上記のようなクエリを実行すると、624日を過ぎたすべての投稿も予期せず削除される可能性があります。)
phpMyAdminにアクセスする方法がわからない場合は、サーバー管理者またはWebホスティング担当者に連絡して指示を受けてください。 Bluehost などcPanel環境を提供するホスティングでは、cPanelからphpMyAdminにログインできます。
まず、DBを必ずバックアップしてから、上記のクエリを実行してください。 DB操作は元に戻すことができないため、常に慎重にする必要があり、バックアップが必要です。
ただし、上記の方法で文章を一括削除すると、切断されたポストメタ(orphaned postmeta)項目が生成され、Transient項目も増える可能性があります。 「orphaned」は「孤児になった」という意味で、親アイテム(文)が削除されて行く場所を失ったポストメタを称する表現で理解すればいいようです。
その後、 WP-Optimizeナ WP-Sweepなどの最適化プラグインを使用して、孤立したアイテムとトランジェントアイテムをクリーンアップできます(「データベースの最適化に WordPress サイトのパフォーマンスを向上させる注)私はTransientエントリが9,000を超えており、最適化プラグインを使用してクリーンアップするのに少し時間がかかりました。同様に、最適化プラグインを実行する前にDBを確実にバックアップしてください。
最後に、
以上、phpMyAdminを介して古い投稿を削除する方法について説明しました。 削除する記事の数がそれほど多くない場合は、WordPress 一括削除/一時文に置き換える」で提示する方法で文を一括削除することができますが、何らかの理由でエラーが発生したり、時間がかかる場合は、上記の方法を考えてみることができます。
コメントを残す