Tôi nghĩ rằng câu trả lời cho câu hỏi của bạn ngay bây giờ là "Không".
Không có cách nào dễ dàng để kích hoạt maybe_convert_table_to_utf8mb4
trên các trang web khi chúng đã được nâng cấp ngoài WP 4.3 trên máy chủ không đáp ứng các yêu cầu được nêu trong bài đăng này:
https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upTHER/
Lưu ý rằng, dựa trên việc xem mã nguồn WP, có vẻ như họ đã chuyển mã này từ trình tự cập nhật của 4.2 sang 4.3 (nó không còn xuất hiện trong 4.2, hiện không có bản nâng cấp nào cả), có thể hy vọng sẽ có thêm người dùng trên máy bay.
Vì vậy, đó là câu trả lời của bạn và nó rất tệ nhưng chính xác hơn những câu khác _ (ツ) _ /
Chúng tôi hiện đang làm việc để tạo một tập lệnh đơn giản cho phép bạn kích hoạt bản chất của chuỗi nâng cấp dựa trên móc hành động. Nếu chúng tôi có thể làm cho nó ổn định và hoạt động, chúng tôi sẽ cố gắng quay lại và chia sẻ nó ở đây để người khác sử dụng.
Kế hoạch cơ bản của chúng tôi là trích xuất phần db thực tế của upgrade_430()
, tách nó khỏi hệ thống cập nhật db và kích hoạt nó theo cách thủ công.
EDIT: GIẢI PHÁP DƯỚI ĐÂY
Mặc dù không có cách nào dễ dàng để kích hoạt tập lệnh, đây là một cách giải quyết được mã hóa bằng tay, dựa trên upgrade_430()
nhưng được thiết kế dưới dạng thả vào.
https://gist.github.com/carlalexander/4106cfaaf405cec454ba195631bcb6bc
Bạn có thể đặt cái này vào một plugin, hoặc chỉ cần dán nó vào hàm.php. Dù bằng cách nào thì nó cũng phải là TẠM THỜI.
Nó được thiết lập để kích hoạt tự động khi bạn truy cập https://yoursite.com/?update-utf8bm4=1
Điều này đảm bảo rằng nó chỉ chạy một lần duy nhất và bạn có thể chọn khi nào (đối với cơ sở dữ liệu lớn có thể mất một lúc và bạn không muốn có ai chỉnh sửa bài đăng trong khi nó đang diễn ra).
Nếu bạn không muốn có trình kích hoạt GET, chỉ cần loại bỏ add_action
phần và if (!isset($_GET['update-utf8bm4']))
phần.
Một lần nữa: XÓA BỎ NÀY KHI HOÀN THÀNH, bạn không muốn để lại một trình kích hoạt GET như thế này nằm xung quanh :)
maybe_convert_table_to_utf8mb4
(giống như bất kỳ bản cập nhật WP nào)? Bạn đã không đề cập đến điều đó trong câu trả lời;)