Kasaypanan sa syntax sa WordPress: Usa ka hingpit nga giya sa pag-ayo sa wala damha nga single-quoted string

WordPress Ang mga kasaypanan sa PHP mahimong tungod sa mga ghost space!

Ang labing gikahadlokan sa mga programmer dili mga bug, apan ang ilang mga emosyon gidulaan sa mga bug.

Ang lohika nga imong gisulat klaro nga maayo, apan ang PHP naghatag kanimo og usa ka syntax errorMorag naulahi ka og tulo ka minuto sa usa ka date, ug ang laing tawo milingiw sa iyang nawong ug miingon nga “wala ka nahigugma nako”. Gibati nimo nga nasayop kaayo nga gusto nimong ilabay ang keyboard.

Kasaypanan sa syntax sa WordPress: Usa ka hingpit nga giya sa pag-ayo sa wala damha nga single-quoted string

Ngano nga ang WordPress PHP nagreport sa usa ka sayup?

Ang prompt nga gihatag sa PHP mao ang:

syntax error, unexpected single-quoted string "wpturbo_handle_upload_convert_...", expecting ")"

Gihubad ngadto sa tawhanong pinulongan, kini nagpasabot: Nagdahom ako sa usa ka panapos nga bracket, apan imong gisulod ang usa ka katingad-an nga hugpong sa mga karakter nganhi kanako, uban sa usa ka dili masabtan nga kinaiya.

Busa unsa ang problema? Dili kini imong lohika sa pag-andar, apan kana nga daw inosente nga linya:

add_filter('wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp');

Ghost space sa code

Ang kinauyokan sa problema mao nga kung imong kopyahon ug idikit ang code, magsagol ka bug-os nga gilapdon nga luna o Zero-lapad nga luna.

Kini nga mga butang dili makita sa hubo nga mata sa editor, apan makapahadlok sa PHP kung mag-parse.

Sama ra sa pagkaon sa usa ka panaksan nga lamian nga noodles, apan kalit nga mopaak ka sa usa ka lugas sa balas ug ang imong mga depensa naguba dayon. Mao ni ang gibati sa PHP sa pagkakaron.

Unsa ang husto nga paagi sa pagsulat niini?

Ang kinahanglan nimong buhaton kay simple ra kaayo. Ibalik ang tanan nga mga espasyo sa multo ug ipadayon ang labing puro nga tunga sa gilapdon nga mga wanang.

Ang husto nga code sa WordPress mao ang mosunod:

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

Unsaon paglikay niini nga sitwasyon?

Tingali nahibulong ka, kinahanglan ka bang makulbaan matag higayon nga imong kopyahon ug idikit? Ang tubag mao: ayaw kalisang, apan magmaalamon.

  1. Paggamit usa ka kasaligan nga editor, sama sa VS Code, nga awtomatiko nga mag-highlight sa mga katingad-an nga karakter.
  2. Sa pag-abli sa usa ka file, sulayi i-save kini sa UTF-8 encoding, nga makapakunhod sa risgo sa "mga simbolo sa multo" sa katunga.
  3. Kung nabalaka gyud ka, idikit ang kadudahang code sa usa ka yano nga himan sa teksto ug limpyohi kini.

Sama sa paghugas sa mga utanon sa dili pa mokaon sa init nga kaldero, daghang mga aksidente ang malikayan.

Konklusyon

Kini nga sayup mahimo’g daw misteryoso, apan ang lohika niini klaro kaayo. Ang pagprograma sama sa pagsulat og balak; ang punctuation ug spacing mao ang kalag sa ritmo. Ang usa ka sayup nga luna mahimong makahulog sa code nga dili ritmo, sama sa usa ka out-of-tune nga tuba nga kalit nga mitungha sa usa ka orkestra.

Sa pagsulat sa kodigo, kinahanglan natong pauswagon ang usa ka matang sa "simbolo nga kalimpyo". Pinaagi lamang sa pagkab-ot sa kahingpitan sa mga detalye nga ang lohika modagan nga hapsay.PilosopiyaSa usa ka diwa, kini usab usa ka pagtinguha sa katukma ug kahusay.

sa pagtipig

Adunay tulo ka importanteng punto:

  • Ang sayup dili usa ka problema sa lohika, apan usa ka wanang sa multo.
  • Ang husto nga pag-ayo mao ang pag-ilis niini sa usa ka standard nga tunga sa gilapdon nga luna.
  • Pagpalambo sa code kalimpyo ug pagpalayo sa mga tinago nga karakter.

Busa, sa sunod higayon nga makasugat ka og usa ka daw dili matukib nga sayop, mahimo ka usab nga magduda: Aduna bay dili makita nga "multo" sa trabaho? Paglihok, limpyohi kini, ug ang imong code modagan nga hapsay.

发表 评论

Ang imong email address dili mamantala. Gigamit ang mga kinahanglanon nga uma * Label

Linukot nga basahon sa Taas