24
במרץ
2010

טיפ וורדפרס: שימוש בסקריפט PHP לגדלי תמונות מותאמים אישית

מאת: מאור ברזני | תגובות: 8 | נושאים: וורדפרס
תגיות: , , , , |

* הטיפ הזה רלוונטי גם עבור וורדפרס אבל הסקריפט ניתן ליישום בכל מערכת PHP.

וורדפרס מאפשרת לחתוך שלושה גדלים שונים של תמונות – תמונה מוקטנת, בינונית וגדולה. המידות של כל סוג גודל אמנם ניתנות להתאמה אישית בהגדרות המדיה אך ישנם מקרים בהם נרצה יותר גדלי תמונות, שישמשו אותנו באזורים שונים באתר. למשל, עבור קטגוריה "חדשות לוהטות", נרצה תמונות במידות קטנות במיוחד, ועוד מידת בינתיים נוספת להצגת תמונות ליד "מאמרים מומלצים במיוחד".

החל מגרסה 2.9, וורדפרס שיפרה את מערך הטיפול שלה בקבצי מדיה וכוללת כעת גם עורך גרפי בסיסי, בעזרתו ניתן לחתוך תמונות. כמו כן וורדפרס מאפשרת בצורה מובנה לשייך תמונה מוקטנת לפוסט ישירות בממשק עריכת הפוסט, תמונות אשר יוצגו לצד הפוסט בארכיונים השונים.

עם זאת, לא מתאפשר להגדיר יותר מאשר שלושה גדלים במערכת. מה נעשה במקרים בהם נרצה גדלים נוספים לתמונות?

סקפריט PHP פשוט המטפל בגדלי תמונות מותאמים אישית

הסקריפט timthumb מאפשר להשתמש בצורה פשוטה ונוחה במידות מותאמות אישית לתמונות. דרך העברת מיקום התמונה המקורית יחד עם פרמטרים נוספים ב- GET, נוצר קובץ בתיקיית cache במידות המתאימות והקובץ מוצג לגולש.

הסקריפט מקבל חמישה פרמטרים, כאשר רק הראשון (src) הוא חובה. מצמידים אותו למאפיין src באלמנט img ב-html. הפרמטרים האפשריים הם:

src – נתיב התמונה המקורית לחיתוך

w – רוחב חדש

h – גובה חדש

zc – zoom-crop, חיתוך בזום. (0 – כבוי ברירת מחדל, 1 פעיל)

q – איכות. מקסימום 100, ברירת מחדל 75

דוגמה למשל לשימוש בסקריפט
[ccwn_php]
some alt text
[/ccwn_php]

כאמור, הסקריפט הזה ניתן לשימוש ויעבוד בכל מערכת PHP, אבל אתמקד פה בשילוב הסקריפט במערכת וורדפרס באופן פשוט.

לא צריך להוסיף שדות מותאמים אישית באופן ידני

בפוסט בנושא, מסביר Chad Coleman איך להשתמש בסקריפט הזה וליישם אותו בעזרת שדות מותאמים אישית. בדרך הזו, יש להגדיר שדה מותאם אישית בפוסט ולהדביק בתוכו את הלינק לתמונה אותה רוצים להציג.

הדרך הזו אפשרית והיתה בשימוש זמן רב בתבניות רבות שעסקו בהצגת תמונות בצורה מותאמת אישית. עם זאת, אפשר לעשות את זה בצורה פשוטה יותר לתפעול שוטף, כך שלא יהיה צריך להזין עבור כל פוסט חדש, שדה מותאם אישית שוב ושוב.

ישנן שלוש אפשרויות, ואראה דוגמאות קוד לשלושתן. אפשרות אחת היא, למי שכבר עובדים עם תמונות פוסט מוקטנות בתבנית, להפעיל את הסקריפט על התמונה המוקטנת השל הפוסט. כך, אם נניח יש לכם תמונה לכל מאמר בעמוד הבית, ועוד תפריט צדדי בו רוצים להציג מאמרים אחרונים עם תמונות מוקטנות, תוכלו להשתמש באותה תמונה שמוגדרת כתמונה מוקטנת, ובאזור האחר להפעיל את הסקריפט לגודל הרצוי.

כל תמונה המשויכת לפוסט שמורה במערכת עם קישור לפוסט. שימו לב, כדי שהסקריפט יעבוד צריך להעביר לו את ה-URL של התמונה ולא את התמונה עצמה.

כדי שהסקריפט יעבוד לכם, פתחו תיקיה בשם scripts בתוך תיקיית ערכת העיצוב שלכם, ובתוכה שמרו אותו. בתוך התייקיה הזו, פתחו ספריה בשם cache. המבנה שאמור להיות לכם כעת הוא –

../wp-content/themes/yourthem/scripts/timthumb.php

../wp-content/themes/yourthem/scripts/cache

את הקוד הבא מקמו בתוך הלופ, במקום שבו רוצים את התמונה:

[ccwn_php]
ID);
?>
קובץ פונקציות מותאם אישי את הקוד הבא:

[ccwn_php]
function tc_get_post_image($post_id) {

$images = get_children(array(
'post_parent' => $post_id,
'post_type' => 'attachment',
'numberposts' => 1,
'post_mime_type' => 'image'));

if ($images){

foreach ($images as $image)
return $image->guid;
}
else
return false;
}
[/ccwn_php]

לאחר מכן, שתלו בתוך הלופ, במקום בו תרצו להציג את התמונה, את השורה הבאה:

[ccwn_php]
<?php the_title(); ?>
[/ccwn_php]

כדי לייצר תמיכה בתמונות מוקטנות וגם תמיכה אחורה לפוסטים שלא משויכות להן תמונות מוקטנות, מבלי להזדקק להזין את כל התמונות מחדש, אפשר לשלב בין שני הקודים האלה ולהתנות בעזרת הפונקציה has_post_thumbnail כדי לבדוק האם לפוסט יש תמונה מוקטנת, ואז לבצע את החלק הראשון, ואם אין לו, אז לבצע את החלק השני.

  • הורידו את הסקריפט timthumb.

שתפו גם אחרים:
  • email
  • Print
  • RSS
  • Facebook
  • Twitter
  • LinkedIn
  • Google Bookmarks
  • Live
  • PDF
  • MySpace
  • del.icio.us
  • Digg
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Add to favorites

8 תגובות »

פיד RSS לתגובות בפוסט | טראקבק


הוסף תגובה ל מאור ברזני

CommentLuv badge

TechnoCraft - פתרונות אינטרנט


אֶקְסְפֶּרִימֶנְט דוֹט אֶפֶס - וורדפרס, תוכן, טכנולוגיה ועוד כמה דברים - מופעל באמצעות WordPress | פתרונות אינטרנט