Lỗi chưa được xử lý của WordPress: Gọi tới hàm không xác định giải pháp create_function()

Bạn cũng đã từngWordPressthông báo lỗi"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Bị đau đầu à?"

Vấn đề này thực sự không khó giải quyết. Bây giờ chúng ta hãy nói chi tiết về lý do tại sao vấn đề này xảy ra và cách giải quyết nó bằng mã đơn giản và hiệu quả.

Tại sao tôi gặp lỗi create_function?

Một chút kiến ​​thức nền tảng đầu tiên. Trong PHP 7.2,create_function()Nó không được dùng nữa và trong PHP 8.0, chức năng này đã bị xóa trực tiếp. Nói cách khác, nếu máy chủ của bạn đã được nâng cấp lên PHP 7.2 trở lên mà vẫn đang sử dụng code cũ thì vấn đề này sẽ xảy ra.

Nhưng cốt lõi của vấn đề là:create_functionĐó là sản phẩm của thời đại cũ. Vấn đề với nó không chỉ là nó không còn được hỗ trợ mà còn gây ra hiệu suất kém và các rủi ro bảo mật tiềm ẩn. Giải pháp mới là sử dụngchức năng ẩn danh(Chức năng ẩn danh).

Sửa đổi mã: Giải quyết lỗi create_function

Lỗi chưa được xử lý của WordPress: Gọi tới hàm không xác định giải pháp create_function()

Bây giờ hãy xem cách thay thế mã cũ. Sau đây là kế hoạch sửa đổi mã cụ thể:

mã gốc

//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );

//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));

Mã đã sửa đổi

// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );

// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );

Giải thích mã:

  • function() { return 1; } là một hàm ẩn danh không yêu cầu tham số và trả về 1.
  • get_bloginfo('url') Đây là một chức năng trả về địa chỉ trang chủ của trang web. Chúng tôi cũng bao bọc nó bằng một chức năng ẩn danh.

Cách tiếp cận tốt hơn: xử lý việc tắt hình thu nhỏ một cách thận trọng

Vô hiệu hóa hoàn toàn hình thu nhỏ của WordPress đôi khi không phải là lựa chọn tốt nhất. Nếu một số chủ đề hoặc plugin nhất định yêu cầu hình ảnh có kích thước cụ thể, việc tắt hoàn toàn chúng có thể gây ra sự cố không mong muốn.

Đây là một giải pháp linh hoạt hơn: vô hiệu hóa có chọn lọc các kích thước hình ảnh không cần thiết thông qua các bộ lọc.

Mã mẫu

add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
    unset( $sizes['thumbnail'] ); // 禁用缩略图
    unset( $sizes['medium'] );    // 禁用中等大小
    unset( $sizes['large'] );     // 禁用大图
    return $sizes;
} );

Cách tiếp cận này không chỉ giải quyết được vấn đề mà còn duy trì khả năng tương thích với một số tính năng nhất định.

Sửa đổi mã

Thêm mã đã sửa đổi vào một trong các vị trí sau:

  1. của chủ đề hiện tại functions.php tập tin.
  2. Plug-in chức năng tùy chỉnh (phương pháp được đề xuất để tránh phạm vi mã do cập nhật chủ đề).

Tôi nên làm gì nếu lỗi vẫn xảy ra sau khi sửa đổi mã?

Nếu plug-in lưu trữ lưu trữ lưu trữ trôi chảy được bật và vẫn có lỗi sau khi sửa đổi, thì có thể nó nằm trongfluent-snippet-storage/index.phpCó một bộ đệm trong đó và mã lỗi của error_files cần được xóa.

vặn to lênwp-content/fluent-snippet-storage/index.phpFile, cuộn xuống cuối và tìm mã tương tự như sau:

'error_files' => 
array (
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
),
);

Mã để xóa các bản ghi lỗi này:

'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',

Mẹo bổ sung: Đảm bảo tính tương thích của mã

Trước khi sửa đổi mã, nên sao lưu các tệp và cơ sở dữ liệu của trang web. Bạn có thể sử dụng các plug-in (chẳng hạn như UpdraftPlus) để nhanh chóng hoàn thành các bản sao lưu và tránh bị mất cảnh giác khi có sự cố xảy ra.

Đồng thời, nếu bạn chưa quen với PHP thì nên thử sửa đổi mã trong môi trường thử nghiệm thay vì trực tiếp vận hành môi trường sản xuất.

Tối ưu hóa mã là một cuộc chiến liên tục

Câu hỏi này tưởng chừng đơn giản nhưng thực chất lại là một vấn đề phổ biến cần phải đối mặt trong quá trình phát triển website:Khả năng tương thích của mã cũ với môi trường mới. Cho dù đó là bản nâng cấp của phiên bản PHP hay cải tiến các chức năng của WordPress, chúng đều được thiết kế để giúp trang web chạy hiệu quả và an toàn hơn.

Đối với các nhà phát triển, việc cập nhật mã kịp thời và học hỏi các công nghệ mới là điều cần thiết. Các hàm ẩn danh không chỉ giúp mã ngắn gọn hơn mà còn cải thiện hiệu suất và giảm các rủi ro bảo mật tiềm ẩn. Mỗi tối ưu hóa sẽ đưa trang web của bạn tiến thêm một bước.

tóm lại

  1. create_function() Nó không còn được hỗ trợ trong PHP 7.2 trở lên. Thay vào đó, nên sử dụng các hàm ẩn danh.
  2. Sau khi sửa đổi mã, trang web của bạn sẽ hoạt động hiệu quả và an toàn hơn.
  3. Để tương thích tốt hơn với các plugin và chủ đề, việc tắt kích thước hình ảnh có chọn lọc có thể là giải pháp tốt hơn.
  4. Tối ưu hóa mã không chỉ là khắc phục sự cố mà còn là một bước hướng tới việc cải thiện chất lượng trang web của bạn.

Nếu bạn gặp phải vấn đề tương tự, bạn có thể muốn thử các giải pháp trong bài viết này.

Hy vọng Chen Weiliang Blog ( https://www.chenweiliang.com/ ) được chia sẻ bởi "Lỗi chưa tìm thấy của WordPress: Gọi tới hàm không xác định Giải pháp create_function()" có thể hữu ích cho bạn.

Chào mừng bạn đến chia sẻ liên kết của bài viết này:https://www.chenweiliang.com/cwl-32407.html

Để khám phá thêm nhiều mẹo ẩn🔑, vui lòng tham gia kênh Telegram của chúng tôi!

Chia sẻ và thích nếu bạn thích nó! Những chia sẻ và lượt thích của bạn là động lực tiếp tục của chúng tôi!

 

发表 评论

Địa chỉ email của bạn sẽ không được công bố. 项 已 * 标注

Thư mục bài viết
Di chuyển về đầu trang