WordPress 2.9以降のゴミ箱(Trash)を無効にする方法

WordPress 2.9から、投稿記事やページを削除すると、一旦ゴミ箱(Trash)に移されるようになりました。記事一覧を見ても、あるのは"削除"では無く"ゴミ箱"と言うリンクだけです。複数人で執筆している人や、うっかりしている人には待望の機能と言えます。

WordPress 2.9以降のゴミ箱機能

しかし、記事を完全に削除するには、ゴミ箱に移動させた後、更に"ゴミ箱を空にする"ボタンを押さねばなりません。直ぐに消したい人には二度手間です。そこでゴミ箱を無効にする方法を紹介します。

この機能は、"wp-settings.php"の中で次のように定義されています。

/**
 * It is possible to define this in wp-config.php
 * @since 2.9.0
 */
if ( !defined( 'EMPTY_TRASH_DAYS' ) )
 define( 'EMPTY_TRASH_DAYS', 30 );

つまり、初期状態では記事がゴミ箱に30日間保管されます。即削除されるようにしたい場合は、"wp-config.php"に次の一行を加えます。定義を書き込む場所は"wp-settings.php"が読み込まれるより前です。上記wp-settings.phpは直接編集しないで下さい。WordPressの更新時に元に戻ってしまいます。

define('EMPTY_TRASH_DAYS', 0 );

この定義で保管期間を0日とする事により、ゴミ箱の文言が"完全に削除する"に変わり、記事を即座に消すことが可能となります。逆に保管期間を伸ばしたいときは値を増やしましょう。

WordPressのゴミ箱機能が無効の状態

ちなみに、ゴミ箱機能に付随して、プラグイン作者向けに次の4種類8つのフックAPIが提供されました。

* @uses do_action() on 'trash_post' before trashing
* @uses do_action() on 'trashed_post' after trashing

* @uses do_action() on 'untrash_post' before undeletion
* @uses do_action() on 'untrashed_post' after undeletion

* @uses do_action() on 'trash_post_comments' before trashing
* @uses do_action() on 'trashed_post_comments' after trashing

* @uses do_action() on 'untrash_post_comments' before trashing
* @uses do_action() on 'untrashed_post_comments' after trashing

プラグイン作者であればAPI名で察しがつくと思いますが、詳しくは"wp-includes/post.php"を参照して下さい。