WordPressтин кармалбаган катасы: аныкталбаган функция create_function() чечимине чалуу

Сиз да болдуңузбу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тин кармалбаган катасы: аныкталбаган функция 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 каналыбызга кошулуңуз!

Бөлүшүп, жакса лайк! Сиздин бөлүшүүлөрүңүз жана лайктарыңыз биздин туруктуу мотивациябыз!

 

发表 评论

Сиздин электрондук почта дарегиңиз жарыяланбайт. Милдеттүү талаалар колдонулат * 标注

Article Directory
Жылдыруу үчүн Top