
メルです。
WordPressの管理者が複数いる場合など、記事を削除させたくないときに記事をゴミ箱に入れさせない方法の紹介です。
編集ファイルはfunctions.phpです。
■投稿記事及び固定ページ全てを削除禁止にする方法
//ゴミ箱に移動する直前に実行する
add_action( "wp_trash_post", "no_delete_page",1,1 );
function no_delete_page($post_id) {
global $post_type;
if(!strpos(wp_get_referer(), 'notrash=1')){
$no_trash_flag = '&notrash=1';
}
wp_redirect( wp_get_referer() . $no_trash_flag );
exit();
}
//エラーメッセージ表示処理
add_action('admin_notices', 'trash_notice');
function trash_notice(){
//パラメータがある時にメッセージを表示
if(strpos(getenv('REQUEST_URI'), 'notrash=1')){
echo '<div class="message error"><p>選択されたページを削除することはできません。</p></div>';
}
}
■投稿記事を削除禁止にする方法
//ゴミ箱に移動する直前に実行する
add_action( "wp_trash_post", "no_delete_page",1,1 );
function no_delete_page($post_id) {
global $post_type;
//投稿記事のみ対象
if($post_type == 'post'){
if(!strpos(wp_get_referer(), 'notrash=1')){
$no_trash_flag = '&notrash=1';
}
wp_redirect( wp_get_referer() . $no_trash_flag );
exit();
}
}
//エラーメッセージ表示処理
add_action('admin_notices', 'trash_notice');
function trash_notice(){
//パラメータがある時にメッセージを表示
if(strpos(getenv('REQUEST_URI'), 'notrash=1')){
echo '<div class="message error"><p>選択されたページを削除することはできません。</p></div>';
}
}
postの部分をpageに変更すると固定ページのみを対象にすることができます。
■特定の投稿記事を削除禁止にする方法
//ゴミ箱に移動する直前に実行する
add_action( "wp_trash_post", "no_delete_page",1,1 );
function no_delete_page($post_id) {
global $post_type;
//投稿記事のみ対象
if($post_type == 'post'){
//削除したくないページIDを配列に格納
$no_delete_page_lists = array("1","6","7");
if(in_array($post_id, $no_delete_page_lists)){
if(!strpos(wp_get_referer(), 'notrash=1')){
$no_trash_flag = '&notrash=1';
}
wp_redirect( wp_get_referer() . $no_trash_flag );
exit();
}
}
}
//エラーメッセージ表示処理
add_action('admin_notices', 'trash_notice');
function trash_notice(){
//パラメータがある時にメッセージを表示
if(strpos(getenv('REQUEST_URI'), 'notrash=1')){
echo '<div class="message error"><p>選択されたページを削除することはできません。</p></div>';
}
}
ネットビジネス速報メールマガジン
メルのネットビジネス速報では、悪質高額塾などの被害が拡大しないように
新しい悪質販売者の情報が入り次第、速報でお伝えいたします。
Dreamweaver、Fireworks、PhotoshopなどのTipsやチュートリアルの紹介、
最新SEO情報、その他ネットビジネスに関する情報をいち早く配信しています。

