WordPress синтаксистік қатесі: күтпеген бір тырнақшалы жолды түзетуге арналған тамаша нұсқаулық

WordPress PHP қателері елес кеңістіктерден туындауы мүмкін!

Бағдарламашылардың ең көп қорқатын нәрсесі қателер емес, олардың эмоцияларын қателер ойнауы.

Сіз жазған логика жақсы екені анық, бірақ PHP сізге мүмкіндік береді syntax errorСіз кездесуге үш минут кешігіп бара жатқан сияқтысыз, ал басқа адам бетін бұрып, «сен мені сүймейсің» дейді. Сіз өзіңізді жаман сезінгеніңіз сонша, пернетақтаны лақтырғыңыз келеді.

WordPress синтаксистік қатесі: күтпеген бір тырнақшалы жолды түзетуге арналған тамаша нұсқаулық

WordPress 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;
}

Бұл жағдайдан қалай аулақ болуға болады?

Сізді қызықтыратын шығарсыз, сіз көшіріп, қойған сайын қобалжуыңыз керек пе? Жауап: үрейленбе, бірақ ақылды бол.

  1. Біртүрлі таңбаларды автоматты түрде бөлектейтін VS Code сияқты сенімді редакторды пайдаланыңыз.
  2. Файлды ашқан кезде оны UTF-8 кодтауында сақтап көріңіз, бұл «елес таңбалар» қаупін екі есе азайтады.
  3. Егер сіз шынымен алаңдасаңыз, күдікті кодты қарапайым мәтін құралына қойып, оны тазалаңыз.

Ыстық қазанды жеу алдында көкөністерді жуу сияқты, көптеген жазатайым оқиғалардың алдын алуға болады.

Қорытынды

Бұл қате жұмбақ болып көрінуі мүмкін, бірақ оның логикасы шын мәнінде өте түсінікті. Бағдарламалау өлең жазу сияқты; тыныс белгілері мен интервал – ырғақтың жаны. Бір ғана дұрыс емес кеңістік оркестрде кенеттен пайда болған бапсыз туба сияқты кодты ырғақтан шығаруы мүмкін.

Кодты жазу кезінде біз «символ тазалығын» дамытуымыз керек. Мәліметтердің жетілдірілуіне қол жеткізу арқылы ғана логика бірқалыпты жұмыс істей алады.ФилософияБылайша айтқанда, бұл да дәлдік пен тәртіпке ұмтылу.

总结

Үш негізгі нүкте бар:

  • Қате логикалық мәселе емес, елес кеңістік.
  • Дұрыс түзету оны стандартты жарты ені бос орынмен ауыстыру болып табылады.
  • Код тазалығын дамытыңыз және жасырын таңбалардан аулақ болыңыз.

Сонымен, келесі жолы түсініксіз болып көрінетін қатеге тап болсаңыз, сіз де күдіктенуіңіз мүмкін: жұмыста көзге көрінбейтін «елес» бар ма? Әрекет жасаңыз, оларды тазалаңыз және сіздің кодыңыз біркелкі жұмыс істейді.

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

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

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

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

 

Пікірлер

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

Топ Scroll