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

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

אבל הי, אם תחליטו שאתם רוצים תנאי אחר אני נוותן אפשרות להשתחל לפילטר "archive_query_critearia". נניח, אם אני רוצה לארכב רק פוסטים שיש להם שדה מטא מסוים, אכניס שאילתא (לצערי בשלב זה מפורשת) שתתן לפחות מערך שיש בו עמודה ID. בכל הרצה של עמוד הסקריפט יבדוק אם יש מה לעדכן בארכיון ואם כן מיד ייקח, יעתיק, ויותיר את הטבלה נקיה.

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

את הקוד תוכלו לדגוםכאן.

 

[1] ואם כבר מדברים על חיפוש, החיפוש של וורדפרס הוא שאילתת LIKE. בטבלאות כבדות השאילתא תהיה איטית. כעת, השאילתא תהיה מהירה מאין כמוהה. אתם עשויים למצוא אתכם עם 50 פוסטים לכל היותר באתר שמתעדכן תדיר. לצערי, לא הצלחתי ולא ניסיתי גם לטפל בתמונות מספריית המדיה, ולכן התמונות עדיין עלולות להעמיס על הטבלה. עם זאת, מה רע לדלל את הטבלה?

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *