Tôi sẽ sử dụng móc before_delete_post
như 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_actions
và 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.