WordPress анықталмаған қатесі: анықталмаған функция create_function() шешіміне қоңырау шалыңыз

Сіз де болдыңыз баWordPressқате туралы хабар»Uncaught Error: Call to undefined function create_function() in SNIPPET:62«Басы ауырды ма?»

Бұл мәселені шешу қиын емес, енді бұл мәселенің неліктен пайда болатынын және оны қарапайым және тиімді кодпен қалай шешуге болатынын егжей-тегжейлі сөйлесейік.

Неліктен мен жасау_функциясы қателерін аламын?

Алдымен кішкене жалпы білім. PHP 7.2-де,create_function()Ол ескірген және PHP 8.0-де бұл функция тікелей жойылған. Басқаша айтқанда, егер сіздің серверіңіз PHP 7.2 немесе одан жоғары нұсқасына жаңартылған болса және әлі де ескі кодты пайдаланса, бұл мәселе орын алады.

Бірақ мәселенің түйіні мынада:create_functionБұл ескі дәуірдің өнімі. Мәселе оған енді қолдау көрсетпеуінде ғана емес, сонымен қатар ол нашар өнімділік пен ықтимал қауіпсіздік қауіптерін тудырады. Жаңа шешім - пайдалануанонимді функция(Анонимді функциялар).

Кодты өзгерту: құру_функциясы қатесін шешіңіз

WordPress анықталмаған қатесі: анықталмаған функция 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;
} );

Бұл тәсіл мәселені шешіп қана қоймайды, сонымен қатар белгілі бір мүмкіндіктермен үйлесімділікті сақтайды.

Кодты өзгерту

Өзгертілген кодты келесі орындардың біріне қосыңыз:

  1. ағымдағы тақырып functions.php файл.
  2. Теңшелетін функция қосылатын модулі (тақырып жаңартулары арқылы кодты қамтуды болдырмау үшін ұсынылған әдіс).

Кодты өзгерткеннен кейін қате орын алса, не істеуім керек?

Fluent-snippet-storage қосылатын модулі қосылған болса және өзгертуден кейін қателер әлі болса, ол мына жерде болуы мүмкін.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 функцияларын жақсарту болсын, олардың барлығы веб-сайтты тиімдірек және қауіпсіз жұмыс істеуге арналған.

Әзірлеушілер үшін кодты уақтылы жаңарту және жаңа технологияларды үйрену өте маңызды. Анонимді функциялар кодты қысқартып қана қоймайды, сонымен қатар өнімділікті жақсартады және ықтимал қауіпсіздік тәуекелдерін азайтады. Әрбір оңтайландыру веб-сайтыңызды бір қадам алға жылжытады.

总结

  1. create_function() Оған енді PHP 7.2 және одан жоғары нұсқаларында қолдау көрсетілмейді және оның орнына анонимді функцияларды пайдалану ұсынылады.
  2. Кодты өзгерткеннен кейін веб-сайтыңыз тиімдірек және қауіпсіз болады.
  3. Плагиндермен және тақырыптармен жақсырақ үйлесімділік үшін кескін өлшемдерін таңдаулы түрде өшіру жақсы шешім болуы мүмкін.
  4. Кодты оңтайландыру тек ақауларды жою ғана емес, сонымен қатар веб-сайтыңыздың сапасын жақсартуға бағытталған қадам болып табылады.

Ұқсас мәселелерге тап болсаңыз, осы мақаладағы шешімдерді қолданып көргіңіз келуі мүмкін.

Hope Chen Weiliang блогы ( https://www.chenweiliang.com/ ) бөліскен "WordPress ұсталмаған қате: анықталмаған функция create_function() шешіміне қоңырау шалу" сізге пайдалы болуы мүмкін.

Осы мақаланың сілтемесін бөлісуге қош келдіңіз:https://www.chenweiliang.com/cwl-32407.html

Көбірек жасырын трюктердің құлпын ашу үшін🔑 Telegram каналымызға қосылыңыз!

Бөлісу және ұнаса лайк! Сіздің бөлісулеріңіз бен лайктарыңыз біздің тұрақты мотивациямыз болып табылады!

 

Пікірлер

Электрондық пошта мекенжайыңыз жарияланбайды. 必填 项 已 用 * 标注

Топ Scroll