כיצד להציג WordPress Sidebar על אתרי אינטרנט ללא WordPress
תוך כדי עבודה על הפרוייקט האחרון שלי, DevGrow דיונים, נתקלתי צורך להטביע את כל הסרגל הצידי של WordPress באתר שאינו וורדפרס - במיוחד א פורום. מאז אני עושה שימוש בווידג'טים שונים כדי להציג הודעות פופולריות ותוכן דינמי אחר, פשוט להעתיק ולהדביק את ה- HTML לא יספיק. בסופו של דבר, יש באמת רק שתי דרכים ללכת על זה:
- לכלול me wp-load.php קובץ ביישום שלך למעשה לטעון את כל וורדפרס כדי לקבל גישה פונקציות plugin
- השתמש במטמון פשוט לאחסון סרגל הצד בתבנית HTML ולכלול אותו בכל יישום אחר, ולאחר מכן לבנות אותו מחדש לפי הצורך כאשר תוכן חדש מתפרסם
אם זה לא ברור מספיק, האפשרות הראשונה היא יקרה מאוד במונחים של שאילתות באתר והוא יכול להאט משמעותית את האתר שלך למטה. האפשרות השנייה דורשת קצת מאמץ ביישום אבל הביצועים חכם אין תחרות.
מטמון הסרגל הצידי שלך WordPress
לפני שנוכל לכתוב את הפונקציה שלנו, אנחנו צריכים להבין בדיוק מה אנחנו מנסים לעשות. המטרה שלנו היא מטמון את סרגל הצד שלנו לקובץ טקסט ו עדכן את המטמון בכל פעם שאנו מפרסמים פוסט, לשנות את הנושא שלנו או לבצע שינויים יישומונים הצדדי. מכיוון שאנו מתכננים להשתמש במטמון שלנו כדי להציג את סרגל הצד על יישום אחר, אנחנו צריכים להיות מסוגלים בקלות למחוק את המטמון ללא כל תופעות לוואי (אנחנו לא רוצים הצדדי שלנו שבור בכל עת).
כדי להשיג זאת ביעילות, אנחנו גם ליצור יומן של קבצים במטמון שלנו ו השתמש בו כדי לקבוע אם יש לנקות את המטמון. אם כן, הקובץ המטמון בפועל יהיה להחליף בפעם הבאה שמישהו מבקר באתר וורדפרס, הבטחת הצדדי הנכון תמיד שניתנו בשני יישומים.
יצירת הפונקציות
כדי להתחיל, פתח את ערכת הנושא שלך פונקציות קובץ ולהוסיף את הפונקציות הבאות:
מטמון פונקציה ($ task, $ cacheFile, $ cacheTime = 21600) מטמון גלובלי $; // הגדרת קבצים וספריות: $ cacheDir = TEMPLATEPATH. "/ Cache"; $ cacheFileName = $ cacheDir. "/ cache- $ cacheFile.txt"; $ cacheLogFile = $ cacheDir. "/ cache-log.txt"; / / לעשות מטמון בספריה אם זה לא קיים אם (! Is_dir ($ cacheDir)) mkdir ($ cacheDir, 0755); // צור יומן של קבצי המטמון עם הסטטוס הנוכחי שלהם אם (file_exists ($ cacheLogFile)) $ cacheLog = unserialize (file_get_contents ($ cacheLogFile)); אחר $ cacheLog = array (); אם ($ task == 'start') / if אם הקובץ השמור קיים, הוא פחות מ -6 שעות ולא נמצא בתור המחיקה, שמור אותו - אחרת בנה מחדש את הקובץ השמור אם (file_exists ($ cacheFileName) && (time () - filemtime ($ cacheFileName)) < $cacheTime && $cacheLog[$cacheFile] == 1) $cache = false; else $cache = true; ob_start(); elseif($task == 'end' && $cache) // If caching, save file contents and update log file_put_contents($cacheFileName,ob_get_contents()); ob_end_flush(); $cacheLog[$cacheFile] = 1; file_put_contents($cacheLogFile,serialize($cacheLog)); elseif($task == 'purge') // Set cache to delete and update log $cacheLog[$cacheFile] = 0; file_put_contents($cacheLogFile,serialize($cacheLog)); function cache_purge() $cacheDir = TEMPLATEPATH."/cache"; $cacheLogFile = $cacheDir."/cache-log.txt"; if(file_exists($cacheLogFile)) $cacheLog = unserialize(file_get_contents($cacheLogFile)); else $cacheLog = array(); foreach($cacheLog as $key=>$ value) $ cacheLog [$ key] = 0; file_put_contents ($ cacheLogFile, בסידרה ($ cacheLog));
הפונקציה הראשונה, מטמון, הוא המפתח להשגת המטמון שלנו לעבודה. תלוי איפה בקובץ שלך אתה קורא לזה, הפונקציה תקבע את הקבצים הנכונים וספריות, לאמת מטמון צריך להיות בנוי ואם כן, תחסוך את הפלט ולעדכן את יומן המטמון. הפונקציה משתמשת במאגר הפלט של PHP כדי לשמור כל HTML שנוצר לקובץ טקסט.
הפונקציה השנייה משמשת לניקוי כל הקבצים המטמון והוא שימושי להוספת וורדפרס קיימים ווים. עם זאת, אנחנו יכולים לעשות את זה אז המטמון שלנו הוא ניקה בכל פעם הנושא שלנו מתעדכן, פוסט נשמר או יישומונים הצדדי שלנו מתעדכנים על ידי הוספת הבאים בסוף פונקציותYou
add_action ('switch_theme', 'cache_purge', 10); add_action ('publish_post', 'cache_purge', 10); add_filter ('widget_update_callback', 'cache_purge', 10);
לקבלת רשימה מלאה של ווים, לבדוק את הפניה של WordPress Plugin API.
הגדרת הסרגל הצידי שלך
עכשיו שיש לך את הפונקציות מוכן, אתה יכול להתחיל במטמון בסרגל הצד שלך. פתח את Sidebar.php ולהוסיף שורה זו לתחילת הקובץ:
פונקציה זו תתחיל במטמון את הצדדי זה צריך, אחרת זה לא יעשה כלום. בגלל הדרך הפלט PHP פונקציית הפונקציה עובד, אנחנו גם צריכים לסגור את המאגר בסוף הקובץ גם כן. הוסף שורה זו לתחתית אותו קובץ:
לאחר שתוסיף את שתי השורות האלה, רענן את הבלוג שלך. אתה לא תראה שום דבר בדפדפן שלך אבל לבדוק את / מטמון ספריית תיקיית הנושא שלך ואתה צריך לראות שני קבצים מתחיל עם מטמון-.
שימוש במטמון שלך
כעת, לאחר שיצרת את קובץ המטמון, תוכל להשתמש בו בכל יישום שיש לו גישה אליו. אתה יכול בקלות לעשות את זה באמצעות include_once אבל אני גם אוהב לוודא את הקובץ קיים, רק כדי להיות בטוח:
רק כדי להיות בטוח לבדוק את נתיב הקובץ שלך נכונה. אם ברצונך להגדיר את הקובץ השמור למחיקה מיישום חיצוני, יהיה עליך לכלול אותו cache_purge לתפקד את התסריט איפשהו ופשוט לקרוא כי בעת הצורך. אחרי זה זה פשוט עניין של קורא את הפונקציה:
סיכום
טכניקה זו שימושית מאוד עבור כל יישום PHP, במיוחד כאשר אתה רוצה להציג תוכן דינמי מבלי להקריב ביצועים. השתמש בו כדי להאיץ את התקנת WordPress שלך או להיות מסוגל להשתמש ביטים שימושיים (כמו סרגל הצד) על כל אתר אחר או יישום אחר.
הערת העורך: פוסט זה נכתב על ידי מונורול דולון עבור Hongkiat.com. Monjurul הוא מעצב ממשק מבוסס NYC ו מפתח אינטרנט, freelancing דרכו בחיים. הוא בלוגים ב DevGrow.com, שם הוא מניות טיפים ומשאבים על פיתוח ועיצוב אינטרנט.