Tôi đã rất ngạc nhiên khi phát hiện ra rằng add_role () sửa đổi cơ sở dữ liệu và thất bại nếu vai trò đã tồn tại. Có hai hàm ý ở đây, một hàm ý nghiêm trọng hơn đầu tiên: 1) nếu bạn đang phát triển và cập nhật mã add_role, trước tiên bạn phải xóa_role () 2) một khi bạn có quyền, bạn không bao giờ phải chạy mã đó lần nữa.
Vì vậy, thông thường tôi đã đặt add_role () của mình trong hook hành động wp_loaded. Và vì tôi đang trong quá trình phát triển, tôi cũng đã thêm remove_role () trước add_role của mình để tôi có thể chắc chắn rằng nếu tôi sửa đổi danh sách mũ của mình, nó sẽ thực sự có hiệu lực.
Nhưng rõ ràng điều này hiện đang được chạy mỗi khi một trang của blog được truy cập. Được rồi, tôi có thể đặt nó trong một hành động chỉ dành cho quản trị viên hoặc tôi có thể tạo một trang plugin có thể trong Người dùng hoặc Công cụ nơi vai trò này có thể được tạo một lần. Tôi đoán tôi đang hy vọng có một giải pháp đơn giản hơn, thanh lịch hơn ngoài kia.
Tôi không tưởng tượng có một loại hành động run_once ở đó?
Hoặc là cách thực hành tốt nhất chỉ để thêm vai trò và sau đó sử dụng add_cap () một loạt các lần? Và thậm chí sau đó tôi tưởng tượng add_cap đang truy cập db.
Chỉ cần suy nghĩ theo cách tốt nhất để giảm truy cập db không cần thiết. Thực hành tốt nhất của bạn là gì?
remove_role()
chức năng trước khiadd_role()
giúp tôi.