פרטי השיעור
הקדמה
אופטימיזציה של תמונות היא תהליך חשוב לשיפור הביצועים של אתרי אינטרנט. טעינת תמונות מהירה יותר יכולה לשפר את חוויית המשתמש, להפחית את זמן הטעינה של הדף, ולשפר את דירוג ה-SEO של האתר. בקורס זה נלמד כיצד לבצע אופטימיזציה של תמונות באתרים מבוססי PHP ובאתרי וורדפרס.
נושא 1: אופטימיזציה של תמונות באתרים מבוססי PHP
למה לבצע אופטימיזציה של תמונות?
- הפחתת זמן הטעינה של הדף.
- הפחתת רוחב הפס הנדרש לטעינת תמונות.
- שיפור חוויית המשתמש.
- שיפור דירוג ה-SEO של האתר.
כלי אופטימיזציה לתמונות
- ImageMagick: ספריה רבת עוצמה לעיבוד תמונות.
- GD Library: ספריה פנימית של PHP לעיבוד תמונות.
דוגמה לשימוש ב-ImageMagick לאופטימיזציה של תמונות
<?php
// טעינת תמונה ושינוי הגודל שלה באמצעות ImageMagick
$image = new Imagick('path/to/image.jpg');
$image->resizeImage(800, 0, Imagick::FILTER_LANCZOS, 1);
$image->setImageCompressionQuality(85);
$image->writeImage('path/to/optimized_image.jpg');
?>
דוגמה לשימוש ב-GD Library לאופטימיזציה של תמונות
<?php
// טעינת תמונה ושינוי הגודל שלה באמצעות GD Library
function optimize_image($source, $destination, $quality) {
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg') {
$image = imagecreatefromjpeg($source);
} elseif ($info['mime'] == 'image/gif') {
$image = imagecreatefromgif($source);
} elseif ($info['mime'] == 'image/png') {
$image = imagecreatefrompng($source);
}
// שינוי גודל התמונה
$width = imagesx($image);
$height = imagesy($image);
$new_width = 800;
$new_height = floor($height * ($new_width / $width));
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// שמירת התמונה החדשה עם איכות מופחתת
if ($info['mime'] == 'image/jpeg') {
imagejpeg($new_image, $destination, $quality);
} elseif ($info['mime'] == 'image/gif') {
imagegif($new_image, $destination);
} elseif ($info['mime'] == 'image/png') {
imagepng($new_image, $destination, floor($quality / 10));
}
// ניקוי זיכרון
imagedestroy($image);
imagedestroy($new_image);
}
// דוגמה לשימוש בפונקציה
optimize_image('path/to/image.jpg', 'path/to/optimized_image.jpg', 85);
?>
נושא 2: אופטימיזציה של תמונות באתרים מבוססי וורדפרס
תוספי וורדפרס לאופטימיזציה של תמונות
- Smush: תוסף פופולרי לאופטימיזציה של תמונות בוורדפרס.
- EWWW Image Optimizer: תוסף נוסף שמבצע אופטימיזציה של תמונות בצורה אוטומטית.
- Imagify: תוסף חזק שמאפשר אופטימיזציה של תמונות ושמירה על איכות התמונה.
אופטימיזציה של תמונות בעת העלאתן לוורדפרס
ניתן להשתמש בפילטרים ואקשנים של וורדפרס כדי לבצע אופטימיזציה לתמונות בזמן שהן מועלות לאתר.
דוגמה לאופטימיזציה של תמונות בעת העלאתן בקובץ functions.php
function optimize_uploaded_image($image) {
$file_path = $image['file'];
$quality = 85;
// בדיקת סוג התמונה וביצוע אופטימיזציה בהתאם
$info = getimagesize($file_path);
if ($info['mime'] == 'image/jpeg') {
$image_resource = imagecreatefromjpeg($file_path);
imagejpeg($image_resource, $file_path, $quality);
} elseif ($info['mime'] == 'image/png') {
$image_resource = imagecreatefrompng($file_path);
imagepng($image_resource, $file_path, floor($quality / 10));
}
// ניקוי זיכרון
imagedestroy($image_resource);
return $image;
}
add_filter('wp_handle_upload', 'optimize_uploaded_image');
שימוש בתוסף WP-CLI לאופטימיזציה של תמונות קיימות
WP-CLI הוא כלי שורת פקודה לניהול וורדפרס. ניתן להשתמש בו לאופטימיזציה של תמונות קיימות באתר.
דוגמה לשימוש ב-WP-CLI לאופטימיזציה של תמונות
wp media regenerate --yes
דוגמה לאופטימיזציה של תמונות קיימות באמצעות ImageMagick ו-WP-CLI בקובץ custom_script.php
<?php
// טעינת WP-CLI וספריית ImageMagick
require_once('wp-load.php');
require_once('vendor/autoload.php');
// קבלת כל התמונות בספריית העלאות
$uploads = wp_upload_dir();
$images = glob($uploads['basedir'] . '/**/*.{jpg,jpeg,png}', GLOB_BRACE);
foreach ($images as $image) {
$img = new Imagick($image);
$img->resizeImage(800, 0, Imagick::FILTER_LANCZOS, 1);
$img->setImageCompressionQuality(85);
$img->writeImage($image);
echo "אופטימיזציה לתמונה {$image} בוצעה בהצלחה\n";
}
?>
וכעת הפעלת הסקריפט באמצעות WP-CLI
php custom_script.php