Tôi sẽ sử dụng móc before_delete_postnhư là lớp bảo vệ cuối cùng chống lại việc xóa (sử dụng giải pháp của @ tf và đó là Câu trả lời đúng).
Và trước tiên, loại bỏ các tùy chọn "Xóa" khỏi tầm nhìn. Phần sau đây ẩn nút Hành động hàng loạt và nút Thùng rác và xóa hành động Xóa hàng vĩnh viễn .

Với mã này:
add_action( 'admin_head-edit.php', 'hide_delete_css_wpse_92155' );
add_filter( 'post_row_actions', 'hide_row_action_wpse_92155', 10, 2 );
add_filter( 'page_row_actions', 'hide_row_action_wpse_92155', 10, 2 );
function hide_delete_css_wpse_92155()
{
if( isset( $_REQUEST['post_status'] ) && 'trash' == $_REQUEST['post_status'] )
{
echo "<style>
.alignleft.actions:first-child, #delete_all {
display: none;
}
</style>";
}
}
function hide_row_action_wpse_92155( $actions, $post )
{
if( isset( $_REQUEST['post_status'] ) && 'trash' == $_REQUEST['post_status'] )
unset( $actions['delete'] );
return $actions;
}
Đây là kết quả:

Lưu ý quan tâm
Không có móc cpt_row_actions. Các hook page_row_actionsvà post_row_actionsđược áp dụng nếu loại bài đăng có thứ bậc hoặc không , tương ứng.