滅多に無いのですが、以前クライアントからゴミ箱の自動削除を無効化してほしいとの依頼がありました。
通常はゴミ箱に入れた記事は30日で自動削除されますが、一旦ゴミ箱にいれた記事をまた使用したい場合などがあったみたいで、その時の事を思い出しながらゴミ箱機能についていろいろと調べてみました。
意外と使えそうな変更があったので今回解説していきたいと思います。
自動削除されるまで期間を変更する
ゴミ箱に入れてから自動削除されるまでの期間は、デフォルトでは30日となります。
自動削除されるまでの期間を変更するには以下のコードをwp-config.phpに記述します。
define('EMPTY_TRASH_DAYS', 日数);
上記のコードの「日数」の部分に、数字で希望日数を入れてください。
ゴミ箱に移動せず直接削除する
ゴミ箱には移動しないでそのまま削除したい場合には、先ほどの「日数」の部分を「0」にします。
define('EMPTY_TRASH_DAYS', 0);
日数を「0」にする事で、「ゴミ箱へ移動」のリンクが「完全に削除する」に変更されます。
※確認メッセージ等は表示されず、そのまま削除されますのでご注意ください。
自動削除を無効化する
ゴミ箱に記事を入れた際に、デフォルトでは30日で自動削除されますが無効化する事もできます。
無効化するには以下のコードをfunctions.phpに記述します。
function disable_scheduled_delete(){
remove_action('wp_scheduled_delete', 'wp_scheduled_delete');
}
add_action('init', 'disable_scheduled_delete');
上記の内容で自動削除は無効化できますが、自身でゴミ箱内の記事を削除しないと記事が溜まり続けます。
あまり多くの記事が溜まるとサーバーに負荷がかかりますので定期的な削除を推奨します。
注意点
今回、ゴミ箱内の記事の自動削除について検証した際、自動削除までの日数の変更するためのコードをwp-config.phpに記述しましたが、記述する場所によって警告が出ますのでご注意ください。
通常wp-config.phpの末尾には以下の記述があるかと思います。
require_once ABSPATH . 'wp-settings.php';
この記述の後に「define(‘EMPTY_TRASH_DAYS’, 日数);」の記述をすると以下のような警告が出ます。
「Warning: Constant EMPTY_TRASH_DAYS already defined in ●●●」
これは、同じ名前の定数が重複している場合などに出る警告です。
WordPressのバージョンによっても違うかもしれませんが、私の場合は警告が表示されたので記述箇所を変更する事で回避出来ました。
さいごに
いかがでしたでしょうか。
今回は、Wordpresでゴミ箱機能の変更や無効化する方法について解説しました。
Webサイトの運用によっては使用する事もあるかと思いますので、こういった事も出来るという事だけは覚えておいてもいいですね。