Nếu bạn có một số lượng lớn người dùng cần xóa, bạn có thể sử dụng lệnh wp người dùng xóa wp-cli để tránh thời gian chờ tập lệnh.
Đây là một ví dụ về truy vấn SQL để xóa tất cả người dùng mà không có bài đăng thuộc bất kỳ loại và trạng thái nào .
Do đó, bạn có thể thử một lớp lót chưa được kiểm tra này :
wp user delete $(wp db query "SELECT ID FROM wp_users WHERE ID NOT IN (SELECT DISTINCT post_author FROM wp_posts ) AND ID NOT IN (1,2,3)" | tail -n +2 ) --reassign=1
hoặc ở dạng mở rộng:
wp user delete $(wp db query
"SELECT ID
FROM wp_users
WHERE ID NOT IN (
SELECT DISTINCT post_author FROM wp_posts
) AND ID NOT IN (1,2,3)" | tail -n +2
) --reassign=1
Lưu ý rằng chúng tôi đã thêm một AND ID NOT IN (1,2,3)
hạn chế bổ sung để đảm bảo những người dùng này không bị xóa (ví dụ: người dùng quản trị viên). Bạn sẽ phải điều chỉnh nó theo nhu cầu của bạn và cả tiền tố bảng wp_
.
Khi tôi thử nghiệm ngắn gọn điều này cho một vài người dùng, tôi nhận thấy tôi phải thêm tail -n +2
phần này để tránh 3 dòng trên cùng trong tiêu đề và viền bảng của wp db query
đầu ra.
Ở đây chúng tôi chỉ định lại tất cả các bài đăng cho người dùng 1, để tránh thông báo:
--reassign parameter not passed. All associated posts will be deleted. Proceed? [y/n]
Hy vọng bạn có thể điều chỉnh nó theo nhu cầu của mình, như thư giãn điều kiện xóa người dùng bằng cách thêm WHERE post_status = 'publish'
.
Lưu ý: Hãy nhớ sao lưu trước khi thử nghiệm!