אחד הפיצ'רים הכי מגניבים של וורדפרס למתכנתים הוא כל נושא הפילטרים.
מהם פילטרים בוורדפרס ?
וורספרס הגדירה 2 דרכים בהן ניתן להתממשק למערכת בזמן פעולתה. פילטרים ופעולות. פילטרים מופעלים על תוכן לפני שהוא מוחזר על ידי אחת הפונקציות של וורדפרס.
כלומר – פילטרים נותנים לנו אפשרות להפעיל על תוכן פעולות לשינויו לפני שהוא יוחזר לתבנית על ידי קריאה של פונקציה סטנדרטית.
לדוגמה סמיילים. כאשר בוחרים בממשק הניהול של וורדפרס להציג סמיילים כתמונות, למעשה מאפשרים פילטר שפועל על תוכן הפוסטים ועל תוכן התגובות לפני שהם מוחזרים לתבנית להצגה.
אז למה אני צריך פילטרים בוורדפרס?
פילטרים מאפשרים לנו לכתוב תוספים או סתם לשפצר תבניות בצורה קלה ונוחה.
למשל: בואו נניח שאנחנו רוצים להכניס תוכן מוסכם (למשל תמונה או קוד HTML) במקום בו המשתמש יבקש זאת.
במקרה כזה נצטרך להגדיר את הסימן אותו יזין המשתמש (למשל {sig}) במקום בו ירצה שוורדפרס תציג את החתימה האמורה. לאחר מכן נכתוב קוד פילטר שיעבוד על התוצאה של the_content ויחליף את המחרוזת {sig} לתמונת החתימה שלנו.
פילטרים מאפשרים לנו להוסיף לתבנית (ולא רק) הרבה מאד גמישות ולהקל בצורה משמעותית על המשתמשים שלנו. למשתמש הממוצע עצם הרעיון שהוא צריך לכתוב טקסט פשוט וקל שיוחלף אוטומטית בתמונת החתימה שלו (דוגמה, כן ?) הוא הקלה משמעותית בשימושיות.
ואיך עושים את זה ?
פונקציית ההחלפה היא קלה למימוש
1 2 3
| function insert_sig ($data) {
str_replace("{sig}", "<img src='myimage-url.jpg' alt='mysig' />");
} |
עכשיו צריך להגיד לוורדפרס להפעיל את הפונקציה הזו על התוכן לפני שיוצג לקורא:
1
| add_filter('the_content', 'insert_sig'); |
שורה זו אומרת לוורדפרס לרשום את הפונקציה שלנו להפעלה בכל פעם שקוראים לפונקציה the_content ולהפעיל את הפילטר לפני שמחזירים את ערך הפונקציה.
דוגמאות לעוד שימושים:
- יישור תגובות לימין\שמאל
- החלפת מילים באחרות\צנזור מילים
- יצירת קישורים אוטומטיים
- פיתוח תוספים לוורדפרס
יש עוד לא מעט, אפשר בקלות יחסית לממש ככה דו כיוווניות יפה ומוצלחת כולל הסתרות מעל תבנית קייימת וללא שימוש בתוסף מסורבל.
עוד על פילטרים ניתן לקרוא בקודקס של וורדפרס כאן וכאן