Deprecated: Creation of dynamic property CF\WordPress\DataStore::$logger is deprecated in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php on line 23

Deprecated: Creation of dynamic property CF\WordPress\Proxy::$pluginAPI is deprecated in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/Proxy.php on line 31

Deprecated: Creation of dynamic property SyntaxHighlighter::$brush_names is deprecated in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/syntaxhighlighter/syntaxhighlighter.php on line 248

Deprecated: Creation of dynamic property SyntaxHighlighter::$specialchars is deprecated in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/syntaxhighlighter/syntaxhighlighter.php on line 326
המכללה | תמונה לפוסט
Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

תמונה לפוסט

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

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

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

< ?php 	
$key= "large-photo";	
if($image = get_post_meta($post->ID, $key, true)){
           echo ""; }
?>

עם תמונה דיפולטיתהתוצאה – עבור כל פוסט מתבצעת בדיקה האם קיים ערך עבור השדה המיוחד שנקרא large-photo, אם כן היא מוצגת, אם לא – מתעלמים וממשיכים הלאה. כמובן שעל מנת שהתמונה תיראה במיטבה יש צורך לייצר עבורה הגדרת עיצוב מתאימה בקובץ ה CSS של הערכה.

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

< ?php 
$key= "large-photo";
$defaultPic = get_bloginfo('template_directory') . '/images/di.jpg';						
if($image = get_post_meta($post->ID, $key, true)){
   echo ""; }
else
   echo "";
?>

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

למטיבי לכת

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

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

לדרג את הפוסט
4.8

Posted

in

by

Tags:

Comments

תגובה אחת על “תמונה לפוסט”

  1. […] פוסטים קשורים כתמונות – רעיון נחמד, עדיין לא מצאתי דוגמה מרשימה כדי […]

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *


Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/DataStore.php:23) in /home/nitzan_n2b/n2b.org/wordpress/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php on line 79