Невловлена ​​помилка 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. Оптимізація коду – це не лише вирішення проблем, але й крок до покращення якості вашого сайту.

Якщо ви стикалися з подібними проблемами, ви можете спробувати рішення в цій статті.

Сподіваємося, що рішення проблеми "Невизначена помилка WordPress: Виклик невизначеної функції create_function()", опубліковане в блозі Ченя Вейляна ( https://www.chenweiliang.com/ ), буде вам корисним.

Не соромтеся поділитися посиланням на цю статтю: https://www.chenweiliang.com/cwl-32407.html

Щоб розкрити більше прихованих хитрощів🔑, приєднуйтесь до нашого Telegram-каналу!

Поділіться та поставте лайк, якщо вам подобається! Ваші розповсюдження та вподобання — наша постійна мотивація!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Прокрутка до початку