Каталог артыкулаў
WordPress Памылкі PHP могуць быць выкліканыя прабеламі-прывідамі!
Праграмісты больш за ўсё баяцца не памылак, а таго, што памылкі будуць маніпуляваць іх эмоцыямі.
Логіка, якую вы напісалі, відавочна, правільная, але PHP дае вам syntax errorГэта як быццам ты спазняешся на спатканне на тры хвіліны, а іншы чалавек адварочваецца і кажа: «Ты мяне не кахаеш». Ты адчуваеш сябе настолькі пакрыўджаным, што хочацца кінуць клавіятуру.

Чаму WordPress паведамляе пра памылку PHP?
Запыт, які выдаецца PHP, выглядае наступным чынам:
syntax error, unexpected single-quoted string "wpturbo_handle_upload_convert_...", expecting ")"
У перакладзе на чалавечую мову гэта азначае: я чакаў закрывальнай дужкі, але ты ўпіхнуў у мяне дзіўны набор сімвалаў, з незразумелым тэмпераментам.
Дык у чым праблема? Гэта не логіка вашай функцыі, а гэты, здавалася б, нявінны радок:
add_filter('wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp');
Прывідныя прабелы ў кодзе
Суць праблемы ў тым, што пры капіраванні і ўстаўцы кода вы змешваеце поўная шырыня прасторы альбо Прабел нулявой шырыні.
Гэтыя рэчы нябачныя няўзброеным вокам у рэдактары, але пры аналізе PHP яны будуць зводзіць з розуму.
Гэта як есці міску смачнай локшыны, але раптам угрызаешся ў пясчынку, і твая абарона імгненна зламаецца. Вось як PHP сябе адчувае ў дадзены момант.
Як гэта правільна напісаць?
Насамрэч, вам трэба зрабіць вельмі проста. Заменіце ўсе гэтыя пустыя прабелы і пакіньце самыя чыстыя прасторы паловай шырыні.
Правільны код WordPress выглядае наступным чынам:
add_filter('wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp');
function wpturbo_handle_upload_convert_to_webp($upload) {
if (in_array($upload['type'], ['image/jpeg', 'image/png', 'image/gif'])) {
$file_path = $upload['file'];
if (extension_loaded('imagick') || extension_loaded('gd')) {
$image_editor = wp_get_image_editor($file_path);
if (!is_wp_error($image_editor)) {
// Set WebP quality (adjust as needed)
$quality = 80; // Adjust between 0 (low) to 100 (high)
$image_editor->set_quality($quality);
$file_info = pathinfo($file_path);
$dirname = $file_info['dirname'];
$filename = $file_info['filename'];
$def_filename = wp_unique_filename($dirname, $filename . '.webp');
$new_file_path = $dirname . '/' . $def_filename;
$saved_image = $image_editor->save($new_file_path, 'image/webp');
if (!is_wp_error($saved_image) && file_exists($saved_image['path'])) {
$upload['file'] = $saved_image['path'];
$upload['url'] = str_replace(basename($upload['url']), basename($saved_image['path']), $upload['url']);
$upload['type'] = 'image/webp';
@unlink($file_path);
}
}
}
}
return $upload;
}
Як можна пазбегнуць гэтай сітуацыі?
Магчыма, вам цікава, ці трэба нервавацца кожны раз, калі капіруеце і ўстаўляеце? Адказ такі: не панікуйце, а будзьце разумнымі.
- Выкарыстоўвайце надзейны рэдактар, напрыклад, VS Code, які можа аўтаматычна падсвятляць незвычайныя сімвалы.
- Пры адкрыцці файла паспрабуйце захаваць яго ў кадыроўцы UTF-8, што можа знізіць рызыку з'яўлення «прывідных сімвалаў» удвая.
- Калі вы сапраўды хвалюецеся, устаўце падазроны код у звычайны тэкставы інструмент і ачысціце яго.
Гэтак жа, як мыццё гародніны перад ужываннем гарачай ежы, можна пазбегнуць многіх няшчасных выпадкаў.
Выснова
Гэтая памылка можа здацца загадкавай, але яе логіка насамрэч вельмі зразумелая. Праграмаванне падобна на напісанне вершаў; пунктуацыя і прабелы — гэта душа рытму. Адзін няправільны прабел можа вывесці код з рытму, як расстроеная туба, якая раптоўна з'яўляецца ў аркестры.
Пры напісанні кода мы павінны развіваць своеасаблівую «чысціню сімвалаў». Толькі дасягнуўшы дасканаласці ў дэталях, логіка можа працаваць гладка.ФіласофіяУ пэўным сэнсе гэта таксама імкненне да дакладнасці і парадку.
总结
Ёсць тры ключавыя моманты:
- Памылка не з'яўляецца лагічнай праблемай, а пустым месцам.
- Правільнае рашэнне — замяніць яго стандартным прабелам паловай шырыні.
- Падтрымлівайце чысціню кода і пазбягайце схаваных сімвалаў.
Такім чынам, наступным разам, калі вы сутыкнецеся з, здавалася б, невытлумачальнай памылкай, вы можаце западозрыць: ці не працуе тут нябачны «прывід»? Прыміце меры, выпраўце іх, і ваш код будзе працаваць гладка.
Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) падзяліўся артыкулам «Памылка сінтаксісу WordPress: выдатны дапаможнік па выпраўленні нечаканага радка ў адзінарных двукоссях», які можа быць вам карысным.
Запрашаем падзяліцца спасылкай на гэты артыкул:https://www.chenweiliang.com/cwl-33245.html
Каб адкрыць больш схаваных хітрасцяў🔑, далучайцеся да нашага канала ў Telegram!
Падзяліцеся і пастаўце лайкі, калі вам гэта падабаецца! Вашы акцыі і лайкі - наша пастаянная матывацыя!