クライアントワークでワードプレスを扱う場合、管理画面側もカスタマイズする必要があると思いますが、これまで扱った案件の中で「ゴミ箱へ移動はできるけど完全に削除できない」仕様にして欲しいと言われたことがあります。
その時の対応方法。
まずは一括操作の「完全に削除する」を以下のようにして削除しました。
if ( ! function_exists( 'my_bulk_actions_edit' ) ) :
add_filter( 'bulk_actions-edit-post', 'my_bulk_actions_edit' );
function my_bulk_actions_edit( $actions ){
unset( $actions[ 'delete' ] );
return $actions;
}
endif;
次に、タイトル毎に表示される「完全に削除する」を削除しました。
if ( ! function_exists( 'my_post_row_actions' ) ) :
add_filter( 'post_row_actions', 'my_post_row_actions' );
function my_post_row_actions( $actions ){
unset( $actions[ 'delete' ] );
return $actions;
}
endif;
この2つの関数はfunctions.phpに追加すればOKです。
最後に「ゴミ箱を空にする」を削除します。
まず、管理画面用のjsファイルを用意して以下のjQueryを記述します。
(function($){
$(document).ready(function() {
$('#delete_all').css('display', 'none');
}
})(jQuery);
以下のコードをfunctions.phpに追加して管理画面で読み込ませます。
// 外部スタイルシートと外部javascriptを追加
if ( ! function_exists( 'add_admin_scripts_styles' ) ) :
add_filter( 'admin_enqueue_scripts', 'add_admin_scripts_styles' );
function add_admin_scripts_styles() {
wp_enqueue_script( 'admin', get_template_directory_uri().'/admin.js', array('jquery'), date('Y-m-d'), TRUE );
}
endif;
以上で管理画面上で記事を完全に削除することはできなくなったと思います。
