דף הבית » וורדפרס » שכתוב כתובות אתרים ב - WordPress טיפים ותוספים

    שכתוב כתובות אתרים ב - WordPress טיפים ותוספים

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

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

    הבנת WP_Rewrite

    אם אתה בכלל מכיר mod_rewrite על שרתי אפאצ 'י ואז תוכל להרים על תחביר לשכתב וורדפרס. המערכת שלהם בנויה עדיין על גבי .htaccess אבל כל הכללים מקודדים ב- PHP. זה למעשה עושה את התהליך קצת יותר קל מאז יש לנו יותר שליטה על כתיבת כתובות האתר שלנו.

    אני ממליץ skimming את הדף בכיתה wp_rewrite $ כפי שיש טונות של מידע על הנושא. יש אפילו דוגמאות קטנות שאנחנו יכולים להתייחס לעשות הכל קל יותר להבין. רוב הקוד ניתן לכתוב ישירות לתוך הנושא שלך פונקציות קובץ. בואו נתחיל על ידי מבט על rewrites ברירת המחדל כבר כלול עם וורדפרס.

    תוכן של $ wp_rewrite-> כללים

    על ידי הכרזה $ wp_rewrite ברמה הגלובלית יש לנו גישה לכל הנתונים הפנימיים. כאשר אתה הולך לצרף את הכללים שלך אלה מתווספים למערך עם השם $ wp_rewrite-> כללים. חשוב לזכור את המשתנה הזה מכיוון שתצטרך להפנות את הנתונים פעמים רבות במהלך הפיתוח.

    כללים); ?>

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

    [category /(.+?)/?$] => index.php? category_name = $ match [1] 

    החלק בצד שמאל בסוגריים הוא Apache RewriteRule שלנו לחפש. החל מהקטע /קטגוריה/ ואחריו כל שורה של תווים. אם זה תואם אז השרת יודע התייחסות index.php = category_name = תוך החלפת המשתנה בסוף.

    הגדרת קישורים מותאמים אישית

    יש כל כך הרבה תוכן לעבור בכיתה $ wp_rewrite לבד. תכונות רבות אחרות ניתן להפנות, כגון $ wp_rewrite-> category_base או $ wp_rewrite-> author_base עבור משיכת מבני ברירת המחדל של כתובות האתרים עבור דפים אלה. אבל מלבד משיכת הגדרות ברירת המחדל של WP אנחנו יכולים גם לבנות את הכללים שלנו.

    בניית בסיס המחבר

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

    אבל אנחנו יכולים להשתמש add_rewrite_rule () מ codex 'וורדפרס לשלב כמה הגדרות חדשות. במקרה זה אני מוחלף / מחבר / עם / סופר / אבל אתה יכול להשתמש בכל בסיס אתה אוהב. בנוסף העתקתי כמה מהפניות אחרות לדפי המחבר ולעדכוני RSS. ניתן להוסיף את גוש הקוד לקובץ functions.php של ערכת הנושא.

    add_action ('init', 'add_author_rules'); הפונקציה add_author_rules () add_rewrite_rule ("author / [[/ ​​/] +)", "index.php? author_name = $ תואם [1]", "למעלה"); (0-9) 1,), "index.php = author_name = $ תואם [1] & paged = $ תואם [2] ", "חלק עליון"); [=] & feed = $ match [2] "," [=] / = / / [/ / / / / / rdf / rss2 | atom) / index.php = חלק עליון"); [=] [=] [=] [=] [=] [=] [=] [=] [=] , "חלק עליון");  

    ניתן לגשת לפונקציה זו גם מבלי להשתמש במשתנה wp_rewrite $. כמה מפתחים כמו שיטה זו כי זה פשוט יותר מאשר קידוד קשה עם תכונות בכיתה. עם זאת שמתי לב גם בשיטה זו לא תמיד אמין עבור כמה התקנות וורדפרס. יש למעשה אפשרות שנייה להוסיף את הכללים על הוו לאחר שטיפה htaccess שלך (ראה להלן).

    מחבר בסיס באמצעות create_rewrite_rules

    כתיבת שיטה זו נצטרך שוב את הכיתה $ wp_rewrite העולמי. אני כבר הגדרת משתנה חדש בשם $ new_rules אשר מכיל מערך אסוציאטיבי של נתונים. הקוד לדוגמה שלי פשוט משכתב עבור הקטע המקורי של דף המחבר.

    הפונקציה create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("author / ([^ /] +) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1)); $ wp_rewrite-> rules = $ new_rules + $ wp_rewrite-> כללים;  

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

    הפונקציה create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("author / / [^ /] +) / =" = "index.php? author_name =". $ wp_rewrite-> preg_index (1), "author / ([/ /] + / page /> Pg_indrite-> preg_index (1). & Paged = ". $ Wp_rewrite-> preg_index (2), "/ articles = php =" / = / / + / (/ rf2 | rs2 | atom) /? = = "index.php? = = = wp_rewrite-> preg_index (1). $ wp_rewrite-> preg_index-> ​​preg_index (2), "author / index [/ / / / feed / RSS / RSS / rss2 | atom) /? = =" index.php? author_name = ". $ wp_rewrite- > preg_index (1). & feed = ". $ wp_rewrite-> preg_index (2)); $ wp_rewrite-> rules = $ new_rules + $ wp_rewrite-> כללים;  

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

    שטוף את כללי השכתוב

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

    שיטה טובה יותר היא לגשת לדף permalinks שלך בחלונית מנהל ולשמור מחדש את השינויים. זה תמיד קורא flush_rewrite_rules כך שאתה לא צריך לדאוג למשתמשים על הממשק חווה טעינת בעיות. וזה לוקח רק פעם אחת כדי לשמור מחדש את הדף ולעדכן את כל הכללים במערכת שלך. אבל אם זה לא עובד אתה יכול לנסות להתקשר $ wp_rewrite-> flush_rules ();

    שימוש בכללים שאינם WP

    בתוך ה $ wp_rewrite בכיתה יש לנו גישה עשרות נכסים. אחת האפשרויות המשמעותיות ביותר היא $ wp_rewrite-> non_wp_rules אשר אוספת מערך של הפניות אשר לא להכות את הקובץ index.php.

    זה משמש למעשה ברוב המקרים בפיתוח תוסף וורדפרס. תוכל לדחוף סוג כתובת אתר מותאם אישית ספציפי (כגון / calendar / june-2012 /) לתוך backend של האתר שלך (/wp-content/plugins/calendarplug/myscript.php). אבל כמובן יש עוד משתמש עבור מערך זה אסוציאטיבי של כללים מותאמים אישית לשכתב אחרים מאשר plugins. סיפקתי דוגמה מצוינת בהקשר שלהלן.

    מיסוך קבצים נושאים שלך

    זוהי הצעה נפוצה אני רואה לעתים קרובות על לוחות דיונים וורדפרס. באופן אידיאלי ברצוננו להפנות כמה קבצים בתוך / wp-content / themes / mytheme / תיקייה עם כתובת אתר אלגנטית יותר. שים לב כי זה יחייב קבוצה שונה של וורדפרס rewrites לשנות את מבנה הספריות.

    מערכת השכתוב הפנימי של וורדפרס תמיד דוחף תוכן לכיוון קובץ ניתוב יחיד. במקרה ברירת המחדל, אנו משתמשים ב- index.php יחד עם נתוני מחרוזת שאילתה נוספים. אבל עבור הסתרת ספריית תבנית סטנדרטית שלנו (/ wp-content / themes / mytheme / *) נצטרך להציג קבצים שונים.

    add_action ('create_rewrite_rules', 'themes_dir_add_rewrites'); function_dir_add_rewrites () $ theme_name = next (להתפוצץ ('/ themes /', get_stylesheet_directory ()); גלובלי $ wp_rewrite; $ new_non_wp_rules = array ('css /(.)' => 'wp-content / themes /' $ $ theme_name. '/ css / $ 1', 'js /(.)' => 'wp-content / themes / 'js / $ 1', 'images / wordpress-urls-rewrite / (.*)' => 'wp-content / themes /' $ $ theme_name. / images / wordpress-urls-rewrite / $ 1 ',); $ wp_rewrite-> non_wp_rules + = $ new_non_wp_rules;  

    כתבתי פונקציה חדשה theme_dir_add_rewrites () כדי למשוך את כל התוכן העיקרי מכתובות האתרים הארוכות יותר ולהפנות אותן בחזרה אל ה- backend. שימו לב שאנו משתמשים במאפיין המסתורי הזה של המחלקה $ wp_rewrite בשם non_wp_rules. על פי המסמכים, אלה הם כללים שאינם מכוונים לקובץ index.php של WP ויטופלו על השרת.

    מה כל כך גדול על אלה שאינם WP הכללים היא שאתה עדיין יכול לנהל את שיטת כתובת האתר הישנה די בקלות. אין שום דבר המונע ממך לקשר אל:

    /wp-content/themes/mytheme/images/wordpress-urls-rewrite/logo.jpg.

    אבל זה נראה הרבה יותר נחמד אם אתה יכול להתייחס:

    /images/wordpress-urls-rewrite/logo.jpg במקום זאת.

    כלים שימושיים & Plugins

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

    אבל כדי להתחיל לבדוק כמה כלים אלה לשכתב שימושי & plugins. אתה כנראה לא צריך את כולם אבל זה נהדר למצוא כזה מפתח מפתח גדול לעבוד סביב WP rewrites.

    לשכתב לנתח

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

    Viewer

    זה דומה לתוסף לעיל אלא אם כן זה לא מאפשר לך לבדוק את הכללים שלך. במקום תוסף זה יציג את כל כללי ברירת המחדל של אתר האינטרנט שלך WP ו לאן הם מפנים מחדש. זה יכלול את כל המאפיינים העיקריים של $ wp_rewrite כגון הגדרות permalink שלך ובסיסי דף / קטגוריה / תגים.

    בקרת WP htaccess

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

    שיטה זו שונה בהשוואה לבניית משלך באמצעות wp_rewrite. עם זאת, ייתכן שיהיה קל יותר עבור techies מי באמת יודע שרתי אינטרנט ולהרגיש נוח יותר בכתב ישירות לתוך. Htaccess.

    לשכתב כלל Tester

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

    DW

    DW שכתוב הוא תוסף פשוט מאוד שיוצר 3 כתובות ייחודיות יפות מיד לאחר ההתקנה. כברירת מחדל, היא תשנה את הקישורים של מנהל המערכת, הכניסה והרישום / admin, /התחברות, ו /הירשם בהתאמה.

    זה יכול להיות נהדר אם אתה צריך תיקון מהיר עבור הבלוג כי תכונות מחברים מרובים. זה יהיה במיוחד להסתיר את הקישור מתפתל וורדפרס מביך (/ww-login.php?action=register).

    סיכום

    אני מקווה שזה יכול ללמד כמה דוגמאות כדי להביא לך לחשוב על וורדפרס rewrites. CMS הוא מאוד פופולרי ומפתחים עדיין לייצר תכונות חדשות בכל יום. התאמה אישית של כתובות האתר שלך הוא כזה חתיכת ענק של פונקציונליות המשתמש מבוסס. זה נותן לאתר שלך נוכחות ייחודית משלה מיתוג לעומת אפשרויות ברירת המחדל.

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