ממשק ה- API לשכתב WordPress

וורדפרס יש ממשק API שימושי באמת שנקרא ” לשכתב API“. אני מניח שכבר יש “שכתוב כתובת אתר”, זהו התהליך שהופך כתובות אתרים לקריאות יותר. לדוגמה כתובת אתר שנכתבה כ http://mysite.com/?page=12&category=12&author=47 אינה נראית כל כך טובה. קשה לזכור את זה, ומנועי חיפוש לא אוהבים את זה כל כך. זו הסיבה שכמעט לכל CMS יש פונקציה מובנית ש”כותבת “את כתובות האתרים כדי להראות כך: http://mysite.com/category/business/finance.


ה- API לשכתב ושיעור WP_Rwrite

בתוך WordPress, תהליך זה ידוע גם בשם מבנה permalinks. כשאתה עובר ממבנה ברירת המחדל של permalink למבנה מותאם אישית אתה מפעיל אוטומטית את ה- API לשכתב. זה אוטומטי לחלוטין. אבל לפעמים אתה צריך ליצור כללי שכתוב מותאמים אישית משלך.

בפוסט זה אנו הולכים ליצור פונקציות פשוטות ליצירת כלל שכתוב חדש בהתאמה אישית. נניח שאנחנו רוצים לקבל ערך מפנה, סוג שווה ערך ל _ _GET $ [‘מפנה’].

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

הוספת שאילתה חדשה Var

כדי להתחיל, עלינו ליצור פונקציה שתגיד לוורדפרס כי מוגדר כלל שכתוב חדש. זהו תפקידו של add_rewrite_rule () ו add_rewrite_tag ()  פונקציות, אך אתה יכול גם לעשות זאת באמצעות query_vars ו- שכתוב_סרטים_ מערך פילטרים. לשם כך עלינו ליצור שתי פונקציות ושני פילטרים. הפונקציה הראשונה הולכת להוסיף פשוט משתנה חדש למסנן query_vars, והשנייה הולכת לרשום משתנה חדש זה לכללי השכתוב העולמי:

/ *
|--------------------------------------------------------------------------
| התחל לשכתב. דוגמא: http://mysite.com/referrer/remi
|--------------------------------------------------------------------------
* /

// רשום גרסה חדשה
פונקציה rc_add_query_vars ($ vars) {
$ vars [] = "מפנה"; // שם הזן כפי שנראה בכתובת האתר
להחזיר $ vars;
}

// חבר את הפונקציה שלנו לשאילתת_וויס
add_filter ('query_vars', 'rc_add_query_vars');

// הוסף את הכלל לשכתב החדש לאלו שקיימים
פונקציה rc_add_rewrite_rules (כללים $) {
$ new_rules = array ('referrer / ([^ /] +) /? $' => 'index.php? referrer = $ תואם [1]');
$ כללים = $ new_rules + $ כללים;
להחזיר חוקים $;
}

// חבר את הפונקציה לשכתוב_רולס_ מערך
add_filter ('שכתוב_רולות_ מערך', 'rc_add_rewrite_rules');

לאחר הוספת קוד זה לאחד מקובצי הפלאגין או לקובץ פונקציות ה- נושא של ה- php, הגע להגדרות> Permalinks ושמור את מבנה הפרמלינקס. יש צורך בפעולה זו. כעת אתה אמור להיות מסוגל לגשת לאתר שלך באמצעות סוג זה או באמצעות כתובת אתר: http://mysite.com/referrer/your-name. אם ברצונך להפנות אותך לדף ספציפי, שנה את index.php? Referrer = $ תואם [1] לפי index.php? Pagename = my-page & referrer = $ תואם [1] כאשר “העמוד שלי” הוא העמוד אותו צריך להיות מופנה שוב ושוב.

אחזור הערך המשתנה

כעת, לאחר שנקבע כלל השכתוב שלך, ייתכן שתרצה לגשת לערך המשתנה. אבל אם אתה מבצע פשוט $ _GET [‘מפנה’], לא תקבל שום ערך. כדי לאחזר את ערכי ה- URL, עליך לחבר פונקציה למסנן “template_redirect”. ההתחברות למסנן “init” מוקדמת מדי. אז אתה יכול לגשת למשתנים הדרושים דרך האובייקט $ wp_query. להלן דוגמה מהירה כיצד לעשות זאת:

// אחזור var URL
פונקציה rc_get_my_vars () {
$ wp_query גלובלי;

if (isset ($ wp_query-> query_vars ['מפנה'))) {
$ referrer = get_query_var ('מפנה');
}
}

// חבר את הפונקציה ל- template_redirect
add_action ('template_redirect', 'rc_get_my_vars');

בשלב הבא תוכלו להדהד את ערך המפנה $ או להשתמש בו כפי שהיה עושה עם משתנה GET רגיל.

אתה יכול כמובן לשנות שימוש ביותר ממשתנה אחד:

// ב rc_add_query_vars ()
$ vars [] = "מפנה";
$ vars [] = "קמפיין";

// ב rc_add_rewrite_rules ()
$ new_rules = array ('referrer / ([^ /] +) / ([^ /] +) /? $' => 'index.php? pagename = my-page & referrer = $ matches [1] & campaign = $ matches [ 2] ');

אל תשכח שאתה זקוק למודול PHP mod_rewrite כדי לאפשר להשתמש בכתיבה מחדש של כתובות אתרים.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me