Đặt lại ID bài đăng về số nguyên dưới 64 bit


8

Tôi đã chạy Wordpress trong nhiều năm và có khoảng 26000 bài viết.

Tại một số điểm, id bài đăng của tôi đã vượt quá số nguyên 32 bit và hiện tôi đang bị khóa sử dụng Wordpress trên hệ thống 64 bit.

Tôi đang thấy các bài đăng có ID như 4863166253.

Tôi muốn chuyển lưu trữ của tôi xuống một máy chủ có công suất thấp như raspberry pi là 32 bit.

Có cách nào để thiết lập lại ID bài đăng để tất cả chúng đều dưới 2 tỷ không?

Bạn có thể đọc báo cáo lỗi Wordpress của tôi ở đây

Cảm ơn.


Đây là một trong những plugin đưa bạn đến đó, tôi đoán là post_2_post nhưng đó chỉ là phỏng đoán. Bạn cần phải thực sự hiểu lý do tại sao bạn có số lượng cao như vậy (không có số lần sửa đổi trực tiếp thực sự sẽ đưa bạn đến đó, trừ khi đó là plugin tạo chúng) và chỉ sau đó bạn mới có thể bắt đầu lên kế hoạch khắc phục.
Đánh dấu Kaplun

Câu trả lời:


5

Câu trả lời này là cách tôi sẽ thực hiện để giải quyết vấn đề nếu tôi phải đối mặt với nó, nó có nghĩa không phải câu trả lời mà là một trong những khả năng.

Tất cả các hoạt động tôi sẽ đề xuất nên được chạy trên máy chủ phát triển / cục bộ trên bản sao lưu cơ sở dữ liệu và không phải trên sản xuất cũng như trên cơ sở dữ liệu gốc.

Nếu bạn có 26.000 bài đăng nhưng id bài đăng như 4,863,166,253 thì có vô số id không được sử dụng.

Để giải quyết vấn đề này, bạn cần phải:

Bước 1

  • xóa id bài viết không sử dụng. (bài viết rác, sửa đổi)
  • loại bỏ trẻ mồ côi bài viết meta
  • loại bỏ các mục quan hệ phân loại trẻ mồ côi

Có các plugin cho phạm vi, nhưng nó có thể được thực hiện bằng các truy vấn SQL thô đơn giản.

Bước 2

Đặt lại id bài đăng thay đổi chúng để bắt đầu lại từ 1. Điều này có thể được thực hiện bằng cách sử dụng kết hợp PHP + MySQL: nếu bạn truy xuất cột id bài đăng dưới dạng một mảng (ví dụ thông qua $wpdb->get_col()), các khóa mảng (tăng thêm 1) sẽ là id bài đăng mới cho bài viết có id hiện tại là trong các giá trị mảng.

Lưu ý rằng id bài viết phải được thay đổi trong:

  • bảng bài
  • bảng quan hệ phân loại
  • bảng meta

Tôi đề nghị bạn nên chạy một thói quen như vậy trên các tập hợp con của các bài đăng bằng cách sử dụng các kết quả được phân trang và không phải trên hàng ngàn hàng.

Bước 3

Đặt AUTO_INCREMENTchỉ mục trên bảng bài đăng để đếm số bài đăng + 1.

Làm xong

Khi kết thúc quá trình này, id bài đăng cao hơn sẽ dễ dàng nằm trong giới hạn số nguyên 32 bit.

Ngăn chặn giới hạn bài đạt được một lần nữa

  • Vô hiệu hóa sửa đổi bài đăng hoặc giới hạn số lượng (xem Codex ).

  • Chuyển các bài đăng cũ hơn (2 tuổi? 5?) Vào một blog riêng trên môi trường nhiều trang, ví dụ: site1-archive.example.comcho các bài đăng trong site1.example.com.

    Điều này có thể được thực hiện bằng cách sử dụng trình xuất WordPress với tùy chọn phạm vi ngày.

    Nếu bạn có kế hoạch thực hiện việc này, sẽ tốt hơn nếu được thực hiện trước khi đặt lại id bài đăng (bước # 2 ở trên), theo cách này cả hai blog có thể có id bài đăng thấp hơn.

    Tất nhiên sau đó, bạn cũng nên đưa ra một cách để chuyển hướng các url đã lưu trữ sang các url mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.