פרטי מדריך:
- קטגוריה: וורדפרס
- רמת קושי: משתמשים מתקדמים
- זמן ביצוע: 5-10 דקות
המדריך הזה מיועד לאלו מבינינו אשר מספקים שירותי בניית אתרי וורדפרס. פעמים רבות אנו נתקלים בתוסף אשר עושה בעיות ומתנגש עם תוספים אחרים. הבעיה היא לרוב סקריפטים כפולים בשפת Javascript.
דוגמה טובה היא בעיה בה נתקלתי לא מזמן בעת בניית אתר jerusalemlodges. בדף הבית יש להם סליידר ובדפים פנימיים יש להם גלריית תמונות. מכיוון שגלריית התמונות קיימת רק בפוסטים בודדים והסליידר קיים בדף הבית אין שום סיבה שהסקריפטים יטענו לכל אורך האתר… זאת פרקטיקה גרועה גם מבחינת מהירות האתר.

הבעיה הייתה ש..
הבעיה שנוצרה היא ששני התוספים משתמשים בקבצי ג'אוה סקריפט אשר התנגשו זה עם זה… הפתרון האידאלי מבחינתי באותו הזמן היה להיכנס אל התוסף ולהתנות אם מדובר בדף הבית אל תטען את הסקריפטים אבל מכיוון שדובר בתוסף שטען את הסקריפטים בתוך Class הוא לא ידע אם מדובר בדף בית או בפוסט בודד.. ולכן נאלצתי למצוא פתרון אחר.
הפתרון היה…
לאחר שניסיתי להסיר את הסקריפטים כשהדף נטען בעזרת הפקודה remove_action הבנתי שזה לא הולך ואל תשאלו אותי למה כי על פי הקודקס של וורדפרס זה אמור לעבוד עברתי לשיטה אחרת שנקראת wp_deregister_script והצמדתי אותה מבחינת סדר הטעינה של הדף לנקודה wp_print_scripts בצורה כזאת
- מה: קוד שמסיר סקריפטים מסוימים שנרצה שלא יופיע בראש המסמך
- איפה: בקובץ Functions.php או קובץ שנכלול לתוכו
add_action('wp_print_scripts', 'sg_cleanUp_gallery',0); function sg_cleanUp_gallery() { if (is_home() || is_page() || is_category()) { // REMOVING JS SCRIPTS wp_deregister_script('script_name'); wp_deregister_script('script_name'); wp_deregister_script('script_name'); wp_deregister_script('script_name'); } }
עוברים על הקוד!
נחבר את הפונקציה לקו זמן בוורדפרס
add_action('wp_print_scripts', 'sg_cleanUp_gallery',0);דוגמה:
add_action(' name of action to hook to', 'name of the function',priority);
במילים פשוטות: בשורת קוד זאת אנו מצמידים את הפונקציה ואת הפעולות שבתוכה לפעולה 'wp_print_scripts'. פקודה זאת מכילה את הסקריפטים שוורדפרס יטמיע בראש המסמך שלנו.
כעת ניצור את הפונקציה אשר רשמנו
function sg_cleanUp_gallery() { // Here we place our commands }דוגמה:
function sg_cleanUp_gallery() { echo 'i would apear on your code!'; }
במילים פשוטות: מכיוון שקשרנו את הפונקציה הזאת לנקודת זמן 'wp_print_scripts' הקוד שבתוכה יפעל כאשר וורדפרס יגיע אליה וידפיס או יבצע את הקוד שבתוך הפונקציה
כעת ניצור התניה מתאימה
if (is_home() || is_page() || is_category()) { // i would apear only in the homepage OR in pages OR in categories }דוגמה:
if (is_home()) { echo 'ברוכים הבאים לדף הבית שלנו!'; }
במילים פשוטות: ההתניה הזאת בודקת אם אנחנו נמצאים בדף הבית (is_home) או בדף רגיל כלומר לא פוסט (is_page) או בקטגוריה (is_category)… אם התנאי נענה בחיוב מה שבתוך הסוגריים המסולסלים יעבוד..
נבחר איזה סקריפטים להסיר
// REMOVING JS SCRIPTS wp_deregister_script('script_name'); wp_deregister_script('script_name'); wp_deregister_script('script_name'); wp_deregister_script('script_name');דוגמה:
wp_deregister_script('MouseWheelJS');
במילים פשוטות: שורות קוד אלו מסירות את הרישום של סקריפט Javascript מסוים אשר הוצמד לראש המסמך (header) שלנו בעזרת הפקודה wp_deregister_script.
מה כבר נגמר?!
כן, פשוט וקל… אם נשארתם עם שאלה כלשהי אתם מוזמנים להשאיר אותה כתגובה ואשמח לעזור במידה ואוכל. המון בהצלחה ואתם מוזמנים להירשם לעדכונים מאתר בעזרת הזנת RSS בתחתית האתר או לאימייל שלכם ממש כאן מתחת.
6 תגובות