דף הבית » טריקים וטיפים, מומלצים

להשתמש ב-shortcodes בכל מקום

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

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

הבעיה

הבעיה במנגנון ה-shortcodes שניתן להשתמש בהם רק בפוסטים ובעמודים.

– לא ניתן להשתמש בהם בתקציר הפוסט/העמוד (Excerpts).
– לא ניתן להשתמש בהם במערכת התגובות (Comments).
– לא ניתן להשתמש בהם במערכת הוידג'טים (Text Widgets).
– לא ניתן להשתמש בהם בתיאור הקטגוריות, התגיות והטקסונומיה (Category, Tag, and Taxonomy Descriptions).
– לא ניתן להשתמש בהם בתיאור המשתמש (User Descriptions).

הפתרון

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

יש להוסיף את הקודים הבאים לקובץ functions.php.

תקציר הפוסט

add_filter('the_excerpt', 'shortcode_unautop');
add_filter('the_excerpt', 'do_shortcode');

תגובות

add_filter('comment_text', 'shortcode_unautop');
add_filter('comment_text', 'do_shortcode' );

וידג'טים

add_filter('widget_text', 'shortcode_unautop');
add_filter('widget_text', 'do_shortcode');

תיאור קטגוריות תגיות וטקסונומיה

add_filter('term_description', 'shortcode_unautop');
add_filter('term_description', 'do_shortcode' );

תיאור משתמש

// $user_id = 3;
$userdata = get_userdata($user_id);
echo do_shortcode($userdata->description);

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

מאת רמי

אחראי על אתר וורדפרס בעברית ועל תרגום ושחרור גרסאות וורדפרס בעברית. מפתח ליבה, בכל גרסה החל מגרסה 2.8, מפתח מוביל בגרסה 4.4 ובגרסה 4.6. מספק שירותי פיתוח אתרים, פיתוח תוספי וורדפרס לסטרטאפים ופיתוח כלים למפתחי וורדפרס - GenerateWP.com.

6 תגובות »

  • ניר כותב :

    נחמד, תרגום לפוסט של סטפני
    http://sillybean.net/wordpress/content/using-shortcodes-everywhere/

  • רמי כותב :

    לא תרגום, אבל הוא אכן היה אחד ממקורות המידע עליהם התבססתי.

  • עובדיה משה כותב :

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

  • שגיב SEO כותב :

    מה עם גוגל כאשר הוא סורק תיאורים אלו? ניסית את זה?
    אצלך אני רואה שאין Meta description אבל אצלי גרמתי
    לתג זה לקחת את המידע ישירות מהexcerpt / תקציר מטעמי
    קידום אתרים כמובן..

    מעניין.. אני אנסה את זה.

  • נעמה כותב :

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

  • רמי כותב :

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

הוסף תגובה !

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

תגיות HTML מורשות לשימוש:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>