Katalog artykułów
Czy ty też byłeśWordPresskomunikat o błędzie”Uncaught Error: Call to undefined function create_function() in SNIPPET:62– Bolała Cię głowa?
Rozwiązanie tego problemu właściwie nie jest trudne. Porozmawiajmy teraz szczegółowo o tym, dlaczego ten problem występuje i jak go rozwiązać za pomocą prostego i skutecznego kodu.
Dlaczego otrzymuję błędy create_function?
Najpierw trochę wiedzy ogólnej. W PHP 7.2,create_function()Została przestarzała i w PHP 8.0 ta funkcja została bezpośrednio usunięta. Innymi słowy, jeśli Twój serwer został zaktualizowany do PHP 7.2 lub nowszego i nadal używa starego kodu, ten problem wystąpi.
Ale sedno problemu polega na tym, że:create_functionJest to produkt starej epoki. Problem z nim polega nie tylko na tym, że nie jest już obsługiwany, ale także powoduje słabą wydajność i potencjalne zagrożenia bezpieczeństwa. Nowe rozwiązanie ma zostać wykorzystanefunkcja anonimowa(Funkcje anonimowe).
Zmodyfikuj kod: Rozwiąż błąd tworzenia_funkcji

Zobaczmy teraz, jak zastąpić stary kod. Poniżej znajduje się szczegółowy plan modyfikacji kodu:
oryginalny kod
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
Zmodyfikowany kod
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
Wyjaśnienie kodu:
function() { return 1; }to funkcja anonimowa, która nie wymaga parametrów i zwrotów1.get_bloginfo('url')Jest to funkcja zwracająca adres strony głównej serwisu. Owijamy ją również funkcją anonimową.
Lepsze podejście: należy zachować ostrożność przy wyłączaniu miniatur
Całkowite wyłączenie miniatur WordPress czasami nie jest najlepszą opcją. Jeśli niektóre motywy lub wtyczki wymagają obrazów o określonym rozmiarze, całkowite ich wyłączenie może spowodować nieoczekiwane problemy.
Oto bardziej elastyczne rozwiązanie: selektywnie wyłączaj niepotrzebne rozmiary obrazów za pomocą filtrów.
Przykładowy kod
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
Takie podejście nie tylko rozwiązuje problem, ale także utrzymuje zgodność z niektórymi funkcjami.
Zmodyfikuj kod
Dodaj zmodyfikowany kod do jednej z następujących lokalizacji:
- aktualnego tematu
functions.phpplik. - Wtyczka funkcji niestandardowych (zalecana metoda uniknięcia pokrycia kodu aktualizacjami motywu).
Co mam zrobić, jeśli błąd nadal występuje po modyfikacji kodu?
Jeśli wtyczka Fluent-snippet-storage jest włączona, a po modyfikacji nadal występują błędy, być może jest ona włączonafluent-snippet-storage/index.phpZnajduje się w nim pamięć podręczna i należy usunąć kod błędu error_files.
zjawiać sięwp-content/fluent-snippet-storage/index.phpFile, przewiń w dół do końca i znajdź kod podobny do następującego:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
Kod do usunięcia tych rekordów błędów:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
Dodatkowa wskazówka: Zapewnij zgodność kodu
Przed modyfikacją kodu zaleca się wykonanie kopii zapasowej plików serwisu i bazy danych. Możesz używać wtyczek (takich jak UpdraftPlus), aby szybko tworzyć kopie zapasowe i uniknąć zaskoczenia, gdy coś pójdzie nie tak.
Jednocześnie, jeśli nie znasz PHP, zaleca się próbę modyfikacji kodu w środowisku testowym, a nie bezpośrednio operowanie środowiskiem produkcyjnym.
Optymalizacja kodu to ciągła walka
To pytanie wydaje się proste, ale w rzeczywistości jest częstym problemem, z którym należy się zmierzyć przy tworzeniu stron internetowych:Zgodność starego kodu z nowym środowiskiem. Niezależnie od tego, czy jest to aktualizacja wersji PHP, czy ulepszenie funkcji WordPressa, wszystkie mają na celu zapewnienie wydajniejszego i bezpieczniejszego działania witryny.
Dla programistów istotna jest terminowa aktualizacja kodu i poznawanie nowych technologii. Funkcje anonimowe nie tylko czynią kod bardziej zwięzłym, ale także poprawiają wydajność i zmniejszają potencjalne zagrożenia bezpieczeństwa. Każda optymalizacja prowadzi Twoją witrynę o krok dalej.
podsumowując
create_function()Nie jest już obsługiwany w PHP 7.2 i nowszych wersjach i zamiast tego zaleca się używanie funkcji anonimowych.- Po modyfikacji kodu Twoja witryna będzie działać wydajniej i bezpieczniej.
- Aby zapewnić lepszą kompatybilność z wtyczkami i motywami, lepszym rozwiązaniem może być selektywne wyłączanie rozmiarów obrazów.
- Optymalizacja kodu to nie tylko naprawienie problemów, ale także krok w kierunku poprawy jakości Twojej witryny.
Jeśli napotkałeś podobne problemy, możesz wypróbować rozwiązania opisane w tym artykule.
Nadzieja Chen Weiliang Blog ( https://www.chenweiliang.com/ ) udostępniony przez „WordPress Uncaught Error: wywołanie niezdefiniowanej funkcji create_function() Solution” może być dla Ciebie pomocny.
Zapraszamy do udostępnienia linku do tego artykułu:https://www.chenweiliang.com/cwl-32407.html
