ලිපි නාමාවලිය
වර්ඩ්ප්රෙස් 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
තවත් සැඟවුණු උපක්රම අගුළු ඇරීමට🔑, අපගේ ටෙලිග්රාම් නාලිකාවට සම්බන්ධ වීමට සාදරයෙන් පිළිගනිමු!
ඔබ එයට කැමති නම් Share කර Like කරන්න! ඔබගේ කොටස් සහ කැමැත්ත අපගේ අඛණ්ඩ අභිප්රේරණයයි!