Giới thiệu
Trong quá trình mình hỗ trợ khách hàng tại AZDIGI, có một số khách hàng gặp phải lỗi lên lịch đăng cho bài viết nhưng đến đúng thời gian đó thì bài viết không được đăng lên. Thì vấn đề này thường liên quan đến các nguyên nhân sau
- Giờ website và giờ hệ thống (Host/VPS) không giống nhau.
- Cron Jobs xử lý của WordPress không hoạt động
Thì vấn đề này mình thường gặp phải ở trường hợp 1 lên đến 80%, và thường xảy ra trên các dịch VPS vì khi sử dụng VPS, người dùng sẽ có tùy chỉnh được múi giờ (timezone) theo từng khu vực trên thế giới. Do đó, nếu giờ thiết lập trên website và giờ ở hệ thống không giống nhau, thì việc lên lịch đăng bài viết sẽ bị sai thời điểm đăng hoặc lỗi không thể đăng.
Dưới đây là hình ảnh minh họa về trường hợp giờ website (18:47) và giờ hệ thống (11:47) bị lệnh nhau dẫn đến bài viết không tự đăng khi lên lịch. Và trường hợp này người dùng sử dụng VPS, nếu trường hợp bạn sử dụng Hosting và cần kiểm tra thời gian của hệ thống, bạn chỉ cần vào Host >> Terminal và gõ date
để xem giờ của hệ thống, nếu sai bạn cần liên hệ với nhà cung cấp Hosting đó xử lý nhé.
Hướng dẫn xử lý
Bây giờ mình sẽ hướng dẫn các bạn cách kiểm tra từng bước để chúng ta xác định được vấn đề và xử lý nó
Trường hợp 1: Kiểm tra và xử lý múi giờ
Bước 1: Kiểm tra giờ hệ thống và giờ website
Như trường hợp ở trên mình đang nói tới, thì sau khi kiểm tra giờ của VPS và website thì thấy 2 múi giờ hoàn toàn khác nhau, nên việc đầu tiên mình sẽ sửa lại cho giống múi giờ với nhau.
Thì ở đây, mình đang ở Việt Nam và mình sẽ chọn múi giờ Việt nam, cụ thể là Ho Chi Minh, thì lúc này giờ ở Việt Nam là 18:50 phút, nhưng ở trên VPS thì đang là 11:50 phút nghĩa là giờ ở VPS chậm hơn 7 giờ.
Bây giờ mình sẽ tiến hành cập nhật lại múi giờ trên VPS cho giống với múi giờ của website theo bước 2.
Bước 2: Cập nhật giờ hệ thống
Ở VPS của bạn, bạn có thể sử dụng lệnh bên dưới để xem múi giờ và cập nhật múi giờ Việt Nam cho VPS với các lệnh
timedatectl status ### Xem thông tin múi giờ timedatectl set-timezone "Asia/Ho_Chi_Minh" ### Set múi giờ Việt nam cho VPS
Sau khi xử lý xong, bạn hãy kiểm tra lại việc lên lịch đăng bài viết của website xem đã xử lý được chưa nhé. Và ở trường hợp của mình thì sau khi cập nhật lại giờ thì đã lên lịch đăng bài thành công.
Trường hợp 2: Kiểm tra Cron Jobs của WordPress
Bước 1: Kiểm tra xem Cron Jobs có bị chặn không
Nếu ở trường hợp 1 múi giờ của bạn đã đúng mà vẫn chưa xử lý được, thì bạn kiểm tra tiếp phần Cron Jobs của WordPress xem có đang bị chặn hay không, vì nếu tính năng này bị chặn thì đồng nghĩa với việc các thiết lập liên quan đến chạy tự động sẽ không thể hoạt động.
Để kiểm tra bạn mở file wp-config.php tại đường dẫn Document Root của website để xem có đoạn bên dưới hay không nhé, nếu có thì bạn tiến hành # hoặc xóa dòng đó đi để Cron Jobs hoạt động bình thường.
define('DISABLE_WP_CRON', 'true');
Nếu đã xử lý phần này mà vẫn chưa được, đừng lo lắng bạn hãy làm tiếp theo bước 2.
Bước 2: Cài đặt Plugin Scheduled Post Trigger
Cách thức hoạt động của plugin này là khi ai đó truy cập vào website của bạn, ngay lập tức nó sẽ kiểm tra WordPress có bỏ lỡ bất kỳ công việc nào được lên lịch gần đây không. Nếu Plugin tìm thấy công việc nào bị bỏ lỡ, nó sẽ thực hiện đăng lại công việc đó cho bạn. Để dễ hiểu hơn, Plugin này sẽ là công cụ để kiểm tra các hoạt động định kỳ liên quan đến Cron Jobs của WordPress.
Bạn chỉ cần cài đặt và kích hoạt PLugin để sử dụng, ngoài ra bạn không cần phải tùy chỉnh gì thêm.
Trên đây là các cách xử lý lỗi không đăng bài viết khi lên lịch trên WordPress vô cùng đơn giản mà bạn có thể tham khảo qua. Hy vọng các bạn có thể xử lý thành công nếu gặp trường hợp tương tự trên website WordPress của mình.