WP Plugin להכריח פוסט מסויים להיפתח בתבנית אחרת

הנושא בפורום 'קהילת מפתחי אתרי אינטרנט' פורסם ע"י ש.ב.ח., ‏9/9/19.

  1. ש.ב.ח.

    ש.ב.ח. משתמש מקצוען פיתוח / אפיון / עיצוב אתרים עיצוב גרפי

    הצטרף:
    ‏9/8/17
    הודעות:
    528
    תודות :
    515
    נקודות:
    196
    אני בונה למישהו איזה מערכת שתשב על וורדפרס, לשם נוחות הניוד אני מעוניין שהיא תהיה נטו בתוסף,
    הצטרכתי להוסיף תבניות עמוד לתבנית מהתוסף וב"ה בהצלחה.
    עכשיו אני צריך שהפוסט המותאם אישית אותו יצרתי בתוסף יהיה לו תבנית משלו,
    בתבנית בת פשוט הייתי עושה קובץ סינגל לפוסט ההוא, אבל אמרנו אני רוצה שהוא יהיה נטו בתוסף.
    מצאתי את הקוד הבא
    upload_2019-9-9_18-37-54.png
    הוא עובד יופי, אלא שלאחר שינוי קטן באחד בשדות הACF בפוסט, התבנית חוזרת לברירת המחדל.

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

    ש.ב.ח. משתמש מקצוען פיתוח / אפיון / עיצוב אתרים עיצוב גרפי

    הצטרף:
    ‏9/8/17
    הודעות:
    528
    תודות :
    515
    נקודות:
    196
    אני רואה שהציבור כאן לא בקטע...
    לא משנה... תהנו עם מה שאתם כן אוהבים...

    בכל מקרה למי שתבוא לפניו שאלה זו, הנה פתרונה:

    בוא נתחיל עם השלב המערכתי:
    לכל עמוד רגיל בוורדפרס ישנו מפתח מטא שנקרא
    קוד:
    wp_page_template_
    מפתח זה יכיל את הערך של התבנית אותה בחרתם בהגדרות העמוד.

    לא דומה פוסט כעמוד רגיל, שלו אין את תג המטה הזה (מפתחות המטא והערכיהם נשמרים בטבלת postmeta בDB), ותמיד יפתח בברירת המחדל שלו.
    מה שעשיתי אם הקוד למעלה זה היה סוג של הכרח, רגע לפני שנבחרת התבנית מתוך הפוסט מטא הוספתי לטבלת הפוסט מטא את המפתח והערך לקבלת תבנית שונה מברירת המחדל.
    -שימו לב לקוד, השורה תתוסף בכל פתיחת פוסט, הוי אומר שהטבלה תתמלא בכאלו שורות כפולות -
    ומה קורה כששומרים שוב את הפוסט (אחרי עריכה או שינוי ואפ' בלי - פשוט לוחצים על עדכון)?
    וורדפרס מזהה שתג המטא שונה ומוסיפה תג מטה נוסף עם אותו מפתח רק בערך שונה, "default"
    זהו, עכשיו יתפוצצו הקנאים וימרחו הקודים, תג המטא השולט הוא הדיפולט, גם אם יהיו עוד מליון אחרים :(, ככל הנראה זה בא למנוע מהפוסט להיפתח בתבנית לא קרויה...

    מיד לאחר שזיהיהתי את השורה החדשה בטבלה, והבנתי מי הוא שתוקע לי מקלות בגלגלים, ידעתי שבאתי לפתרון.

    פשוט, לפני שנוסיף את המטא נמחק את כל השורות אם מפתח המטה הזה:
    אז כך זה עבד:
    upload_2019-9-10_3-0-46.png
     
    זה אני :) מודה על התגובה.