כיצד להסיר קוד קצר בשימוש מתוך הודעות [וורדפרס]
וורדפרס, אם השתמשת שפע של תוספים, אתה בוודאי באים על פני כמה הדורשים ממך לשים shortcode בפוסט, כמו [shortcode_1], על זה כדי לעבוד. שימוש ב- shortcode עשוי להיות דרך טובה להוסיף פונקציונליות לאתר שלך, אך כאשר תבטל את פעולת הפלאגין, הקוד הקצר בתוכן שלך לא יוסר, והוא יופיע בממשק בצורתו הלא מעובדת.
כך זה נראה בצורתו הלא מעובדת:
קיימות מספר דרכים להסרת קוד קצר שאינו בשימוש מהאתר שלך:
1. הסר את קוד קצר ממסד הנתונים
אם אתה יודע איזה קוד קצר אתה רוצה להסיר ואתה רוצה להסיר אותו לצמיתות ממסד הנתונים שלך, אתה יכול פשוט לעשות שאילתת SQL עם הפקודה הבאה:
UPDATE wp_post SET post_content = REPLACE (post_content, '[shortcodename]', '');
החלף את "shortcodename" עם הקוד הקצר שברצונך להסיר.
הערה : שיטה זו אינה חסינת תקלות מכיוון שקודים קצרים שונים יכולים לבוא עם תכונות וערכים שונים, מה שמקשה על יצירת שאילתת SQL-all-all.
.2 החזר את הקוד החסר לערך ריק
אם אתה יודע איזה קוד קצר להסיר, אך אינך רוצה להסיר אותו לצמיתות, תוכל לקבל אותו במקום זאת כדי להציג ערך ריק. הדבק את הקוד הבא בסוף הקובץ functions.php
(לפני התג ?>
) בתיקיית ערכת הנושא.
add_shortcode ('shorcodename', 'mte_return_empty_shortcode'); function mte_return_empty_shortcode () {return ''; }
החלף את "shorcodename" עם קוד קצר שברצונך להסיר.
הערה : זוהי שיטה טובה רק אם אתה יודע איזה קוד קצר אתה הולך להסיר. כמו כן, עליך לוודא שהקודקוד אינו פעיל יותר, אחרת הוא עלול לגרום להתנגשות.
3. הסר את כל הקודים שאינם בשימוש מתוכן (מומלץ)
אם יש לך חבורה של קודים כי אתה כבר לא בשימוש ואתה לא יכול לזכור את כל שם קוד קצר, הנה דרך האולטימטיבית להשבית את כל קוד קצר בשימוש בתוכן שלך.
הדבק את הקוד לסוף functions.php
שלך ממש לפני התג ?>
add_filter ('the_content', 'mte_remove_unused_shortcode'); function mte_remove_unused_shortcode ($ content) {$ pattern = mte_get_unused_shortcode_regex (); $ content = preg_replace_callback ('/'. $ pattern. '/ s', 'strip_shortcode_tag', $ content); חזור תוכן $; } function mte_get_unused_shortcode_regex () {global $ shortcode_tags; $ tagnames = array_keys ($ shortcode_tags); $ tagregexp = הצטרף ('|', array_map ('preg_quote', $ tagnames)); $ regex = '\\ [(\\ [?)'; $ regex. = "(?! $ tagregexp)"; $ regex. = '\\ b ([^ \\] \\ /] * (?: \\ / (?! \\]) [^ \\] \\ /] *) *) (? :( (\: \) [\\] (?: ([^ \\ [] * (?: \\ [(?! \\ / \\ 2 \\]) [^ \\ [] * ) *) \\ [\\ / \\ 2 \\])?) (\\)? '; return regex; }
מה הקוד לעיל עושה כדי לאחזר תחילה את רשימת כל קודים פעילים, לחפש את התוכן עבור קודים שאינם תואמים את רשימת shortcode פעיל ולהסיר את הקודים. זה שונה מהפונקציה get_shortcode_regex לבדוק את קוד קצר פעיל.
הערה : שיטה זו אמורה לפעול עבור כל קוד קצר שאינו בשימוש והוא אינו מסיר את הקוד הקצר לצמיתות. בפעם הבאה שתפעיל מחדש את הפלאגין, הקוד הקצר המתאים ימשיך לפעול באופן אוטומטי. בצד השני, קוד זה יסיר את כל התוכן המצוטט בין תג ["" ל "]".