სტატიების დირექტორია
შენც ყოფილხარWordPressშეცდომის შეტყობინება"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"თავის ტკივილი მოგცემთ?"
ამ პრობლემის გადაჭრა ფაქტობრივად არ არის ძნელი, ახლა დეტალურად ვისაუბროთ იმაზე, თუ რატომ ჩნდება ეს პრობლემა და როგორ მოვაგვაროთ ის მარტივი და ეფექტური კოდით.
რატომ ვიღებ create_function შეცდომებს?
ჯერ მცირე ცოდნა. PHP 7.2-ში,create_function()ის მოძველებულია და PHP 8.0-ში ეს ფუნქცია პირდაპირ ამოღებულია. სხვა სიტყვებით რომ ვთქვათ, თუ თქვენი სერვერი განახლებულია PHP 7.2 ან უფრო მაღალ ვერსიაზე და კვლავ იყენებს ძველ კოდს, ეს პრობლემა წარმოიქმნება.
მაგრამ პრობლემის არსი არის:create_functionძველი ეპოქის პროდუქტია. პრობლემა არ არის მხოლოდ ის, რომ ის აღარ არის მხარდაჭერილი, არამედ ის ასევე იწვევს ცუდ შესრულებას და უსაფრთხოების პოტენციურ რისკებს. ახალი გამოსავალი არის გამოყენებაანონიმური ფუნქცია(ანონიმური ფუნქციები).
შეცვალეთ კოდი: მოაგვარეთ create_function შეცდომა

ახლა ვნახოთ, როგორ შევცვალოთ ძველი კოდი. ქვემოთ მოცემულია კოდის მოდიფიკაციის კონკრეტული გეგმა:
ორიგინალური კოდი
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
შეცვლილი კოდი
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
კოდის განმარტება:
function() { return 1; }არის ანონიმური ფუნქცია, რომელიც არ საჭიროებს პარამეტრებს და აბრუნებს1.get_bloginfo('url')ეს არის ფუნქცია, რომელიც აბრუნებს ვებსაიტის საწყისი გვერდის მისამართს, ჩვენ ასევე ვახვევთ მას ანონიმური ფუნქციით.
უკეთესი მიდგომა: სიფრთხილით მოეპყარით მინიატურების გამორთვას
WordPress-ის მინიატურების მთლიანად გამორთვა ზოგჯერ არ არის საუკეთესო ვარიანტი. თუ გარკვეული თემები ან დანამატები მოითხოვს კონკრეტული ზომის სურათებს, მათი სრული გამორთვა შეიძლება გამოიწვიოს მოულოდნელი პრობლემები.
აქ არის უფრო მოქნილი გამოსავალი: შერჩევით გამორთეთ სურათების არასაჭირო ზომები ფილტრების საშუალებით.
კოდის ნიმუში
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
ეს მიდგომა არა მხოლოდ წყვეტს პრობლემას, არამედ ინარჩუნებს თავსებადობას გარკვეულ მახასიათებლებთან.
კოდის შეცვლა
დაამატეთ შეცვლილი კოდი ერთ-ერთ შემდეგ ადგილას:
- აქტუალური თემის
functions.php文件. - მორგებული ფუნქციის დანამატი (რეკომენდებული მეთოდი თემის განახლებით კოდის დაფარვის თავიდან ასაცილებლად).
რა უნდა გავაკეთო, თუ კოდის შეცვლის შემდეგ მაინც მოხდა შეცდომა?
თუ fluent-snippet-storage plug-in ჩართულია და ცვლილებების შემდეგ კვლავ არის შეცდომები, ის შეიძლება იყოსfluent-snippet-storage/index.phpმასში არის ქეში და error_files-ის შეცდომის კოდი უნდა წაიშალოს.
აღმოჩნდაwp-content/fluent-snippet-storage/index.phpშეიტანეთ ფაილი, გადაახვიეთ ბოლომდე და იპოვნეთ შემდეგი კოდის მსგავსი:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
კოდი ამ შეცდომის ჩანაწერების წასაშლელად:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
ბონუს რჩევა: უზრუნველყოს კოდის თავსებადობა
კოდის შეცვლამდე რეკომენდებულია ვებსაიტის ფაილების და მონაცემთა ბაზის სარეზერვო ასლის შექმნა. შეგიძლიათ გამოიყენოთ დანამატები (როგორიცაა UpdraftPlus), რათა სწრაფად შეავსოთ სარეზერვო ასლები და თავიდან აიცილოთ თავშეკავება, როდესაც რამე არასწორედ მოხდება.
ამავდროულად, თუ არ იცნობთ PHP-ს, რეკომენდირებულია შეეცადოთ შეცვალოთ კოდი სატესტო გარემოში, ვიდრე უშუალოდ საწარმოო გარემოში მუშაობა.
კოდის ოპტიმიზაცია მუდმივი ბრძოლაა
ეს კითხვა მარტივი ჩანს, მაგრამ სინამდვილეში ეს არის საერთო პრობლემა, რომელსაც უნდა შეხვდეთ ვებსაიტის შემუშავებისას:ძველი კოდის თავსებადობა ახალ გარემოსთან. იქნება ეს PHP ვერსიის განახლება თუ WordPress ფუნქციების გაუმჯობესება, ისინი ყველა შექმნილია იმისათვის, რომ ვებსაიტი უფრო ეფექტურად და უსაფრთხოდ იმუშაოს.
დეველოპერებისთვის აუცილებელია კოდის დროულად განახლება და ახალი ტექნოლოგიების სწავლა. ანონიმური ფუნქციები არა მხოლოდ ხდის კოდს უფრო ლაკონურს, არამედ აუმჯობესებს შესრულებას და ამცირებს უსაფრთხოების პოტენციურ რისკებს. ყოველი ოპტიმიზაცია თქვენს ვებსაიტს ერთი ნაბიჯით წინ წაიყვანს.
რომ შევაჯამოთ
create_function()ის აღარ არის მხარდაჭერილი PHP 7.2 და ზემოთ და რეკომენდებულია ანონიმური ფუნქციების გამოყენება.- კოდის მოდიფიცირების შემდეგ, თქვენი ვებ – გვერდი უფრო ეფექტური და უსაფრთხო იქნება.
- დანამატებთან და თემებთან უკეთესი თავსებადობისთვის, გამოსახულების ზომის შერჩევითი გამორთვა შეიძლება იყოს უკეთესი გამოსავალი.
- კოდის ოპტიმიზაცია არ არის მხოლოდ პრობლემების გამოსწორება, არამედ ნაბიჯია თქვენი ვებსაიტის ხარისხის გასაუმჯობესებლად.
თუ თქვენ შეგხვედრიათ მსგავსი პრობლემები, შეგიძლიათ სცადოთ გადაწყვეტილებები ამ სტატიაში.
იმედი ჩენ ვეილიანგის ბლოგი ( https://www.chenweiliang.com/ ) გაზიარებული "WordPress Uncaught Error: Call to undefined function create_function() Solution"-ის მიერ შეიძლება დაგეხმაროთ.
კეთილი იყოს თქვენი მობრძანება ამ სტატიის ბმულის გასაზიარებლად:https://www.chenweiliang.com/cwl-32407.html
