יצירת איזורי וידג'טים חדשים בוורדפרס

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

לא מזמן הייתי צריך ליצור תבנית בוורדפרס ורציתי להכניס לתוכה איזור וידג'טים חדש. למי שלא יודע, וידג'טים הם הדרך של וורדפרס לאפשר יצירה של 'קופסאות מידע' שונות. כמו למשל הצגת הקטגוריות שיש באתר וורדפרס, הצגת דפים פופולריים ביותר וכו' וכו'. כאשר יכולים להיות כמה איזורי וידג'טים: ב-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'); 

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

פוסטים נוספים שכדאי לקרוא

תמונת תצוגה של מנעול על מחשב
פתרונות ומאמרים על פיתוח אינטרנט

הגנה מפני XSS עם Trusted Types

תכונה ב-CSP שמאפשרת מניעה כמעט הרמטית להתקפות XSS שכל מפתח ווב צריך להכיר וכדאי שיכיר.

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

גלילה לראש העמוד