לא מזמן הייתי צריך ליצור תבנית בוורדפרס ורציתי להכניס לתוכה איזור וידג'טים חדש. למי שלא יודע, וידג'טים הם הדרך של וורדפרס לאפשר יצירה של 'קופסאות מידע' שונות. כמו למשל הצגת הקטגוריות שיש באתר וורדפרס, הצגת דפים פופולריים ביותר וכו' וכו'. כאשר יכולים להיות כמה איזורי וידג'טים: ב-sidebar, ב-header ובמקומות נוספים.
קל מאד ליצור איזור וידג'ט משלכם בוורדפרס ואני הולך להראות כיצד עושים את זה במאמר הזה. כל מה שצריך לעשות זה להחליט על שם ותיאור של איזור הוידג'ט וכמובן על מיקומו של האיזור. אחרי שהחלטנו, אנחנו צריכים 'להצהיר' על מיקום האיזור בקובץ הידוע לשמצע בשם functions.php שנמצא בכל תמה שהיא:
יש לנו את פונקציות widgets_init שבה אנו מגדירים את האיזורים השונים של הוידג'טים. אם אתם מוסיפים איזור חדש לתמה קיימת, סביר להניח שהפונקציה הזו או פונקציה דומה לה תהיה ב-functions.php.
בתוך הפונקציה הזו אנו קוראים לפונקצית register_sidebar ומעבירים לתוכה מערך עם פרטי איזור הוידג'ט – שם, שם המכונה, תיאור וכן תגיות ה-HTML שיש לפני הוידג'טים השונים והכותרות שלהן.
function widgets_init() {
register_sidebar( array(
'name' => __( 'MY WIDGET AREA NAME', 'language' ),
'id' => 'my-widget-area-machine-name',
'description' => __( 'Desciption for the admin menu', 'language' ),
'before_widget' => '<div class="my_widgets_area">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
) );
}
add_action( 'init', 'widgets_init' );
לאחר שסיימנו, אנו צריכים להחליט היכן בדיוק איזור הוידג'טים הזה יוצג באתר שלנו. נאתר חלק מסוים באתר (כל דף שהוא – sidebar.php, single.php וכל חלק שהוא שאנו רוצים לראות בו את איזור הוידג'טים). ונכניס לתוכו את הטקסט הבא:
if (is_active_sidebar(''my-widget-area-machine-name') ) {
dynamic_sidebar(''my-widget-area-machine-name');
}
ו… זה הכל! אנו נוכל לראות בתפריט הוידג'טים שיש לנו איזור חדש שאליו ניתן להוסיף וידג'טים.
אם אתם לא רוצים ללכלך את התמה שלכם בקוד ספגטי, ניתן ליצור קובץ PHP בתיקית הטמפלייט שלכם בשם my_widget_area.php, להכניס לתוכה את הקריאה לאיזור הוידג'ט כפי שהיא מופיעה לעיל ואז לקרוא לה באמצעות include זה או אחר:
include(TEMPLATEPATH . '/my_widget_area.php');
יש כאלו שלא ירצו לנהוג כך וזה בסדר גמור. קוד ספגטי בוורדפרס זה משהו שנכון לעכשיו מחוייב המציאות.