სტატიების დირექტორია
WordPress PHP შეცდომები შეიძლება გამოწვეული იყოს ghost spaces-ით!
პროგრამისტებს ყველაზე მეტად არა შეცდომები ეშინიათ, არამედ იმისა, რომ შეცდომები მათ ემოციებზე თამაშობენ.
თქვენს მიერ დაწერილი ლოგიკა ცხადია კარგია, მაგრამ 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');
კოდში არსებული Ghost Spaces
პრობლემის არსი ის არის, რომ კოდის კოპირებისა და ჩასმისას, თქვენ ურევთ სრული სიგანის სივრცე ან ნულოვანი სიგანის სივრცე.
რედაქტორში ეს ყველაფერი შეუიარაღებელი თვალით უხილავია, მაგრამ დამუშავებისას 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 კოდირებით, რაც „მოჩვენება სიმბოლოების“ რისკს ორჯერ შეამცირებს.
- თუ ნამდვილად შეშფოთებული ხართ, ჩასვით საეჭვო კოდი უბრალო ტექსტურ ინსტრუმენტში და გაწმინდეთ.
ისევე, როგორც ცხელი ქვაბის ჭამის წინ ბოსტნეულის გარეცხვისას, ბევრი უბედური შემთხვევის თავიდან აცილებაა შესაძლებელი.
დასკვნა
ეს შეცდომა შეიძლება იდუმალებით მოგეჩვენოთ, მაგრამ მისი ლოგიკა სინამდვილეში ძალიან ნათელია. პროგრამირება პოეზიის წერას ჰგავს; პუნქტუაცია და ინტერვალი რიტმის სულია. ერთ არასწორ ინტერვალსაც კი შეუძლია კოდი რიტმიდან გადააგდოს, ისევე როგორც ორკესტრში მოულოდნელად გაუმართავი ტუბა ჩნდება.
კოდის წერისას, ჩვენ უნდა შევიმუშაოთ ერთგვარი „სიმბოლოების სისუფთავე“. მხოლოდ დეტალებში სრულყოფილების მიღწევით შეიძლება ლოგიკის შეუფერხებლად მუშაობა.ფილოსოფიაგარკვეული გაგებით, ეს ასევე სიზუსტისა და წესრიგისკენ სწრაფვაა.
რომ შევაჯამოთ
არსებობს სამი ძირითადი პუნქტი:
- შეცდომა ლოგიკური პრობლემა კი არა, მოჩვენებითი სივრცეა.
- სწორი გამოსწორებაა მისი სტანდარტული ნახევარი სიგანის სივრცით ჩანაცვლება.
- განავითარეთ კოდის სისუფთავე და მოერიდეთ დამალულ სიმბოლოებს.
ასე რომ, შემდეგ ჯერზე, როდესაც ერთი შეხედვით აუხსნელ შეცდომას წააწყდებით, შეგიძლიათ იეჭვოთ: ხომ არ მოქმედებს უხილავი „აჩრდილი“? მიიღეთ ზომები, გაასუფთავეთ ისინი და თქვენი კოდი შეუფერხებლად იმუშავებს.
იმედი ჩენ ვეილიანგის ბლოგი ( https://www.chenweiliang.com/ ) გააზიარა „WordPress-ის სინტაქსური შეცდომა: იდეალური სახელმძღვანელო მოულოდნელი ერთბრჭყალიანი სტრიქონის გამოსასწორებლად“, რომელიც შეიძლება თქვენთვის სასარგებლო იყოს.
კეთილი იყოს თქვენი მობრძანება ამ სტატიის ბმულის გასაზიარებლად:https://www.chenweiliang.com/cwl-33245.html
