הפרויקט שלנו הולך ומתקדם וכבר יש לנו:
- סיידר בר
- קוסטום פוסט טייפ
- תבנית ייחודית
- מבנה וורדפרסי נקי
עכשיו הגיע הזמן להגדיר אילו סוגי משתמשים והרשאות אנחנו רוצים שיהיו לנו. בשביל זה שווה לעבור על הפוסט הזה: קורס בניית אתרים בוורדפרס – סוגי משתמשים והרשאות בוורדפרס, שנכתב בזמנו, ונמשיך הלאה ליצירת סוגי המתמשים וההרשאות שנבחר להם, קודם נגדיר את סוגי ההרשאות כמובן:
מכוון שאתר שלנו עוסק בתוכן והולך להפיץ תכנים בנושא פקניקים , נוכל לאפשר ליוזרים להירשם כמנויים ולקבל עדכונים , חוץ מזה נרצה לאפשר לכותבים להעלות תכנים משלהם. ולערוך את התכנים שלהם בלבד.
אז מה קיבלנו:
- מנויים שמקבלים עדכונים . נקרא להם פיקניקרים
- עורכים שיכולים להעלות תכנים ספציפיים ולערוך תכנים שלהם בלבד . נראה להם בלוגרים
כיצד לשייך בין role לבין custom post type
בשביל לייצר רול חדש, בדומה למה שהצגנו בפוסט של קורס בניית אתרים בוורדפרס – סוגי משתמשים והרשאות בוורדפרס
וכן נגדיר את ההרשאות הרצויות:
// users role
add_action('init',function(){
add_role('blogger','Picnic Bloger');
$picnicer = get_role('blogger');
$picnicer->add_cap('read');
$picnicer->add_cap('edit_picnic');
$picnicer->add_cap('edit_picnics');
}
כפי שניתן לראות ובהתאם ליכולות של add_role של וורדפרס , הוספנו רול חדש , והוספנו לו capabilities , כך שהיוזר יוכל לגשת למערכת (בדומה לsubscriber role) והוספנו לו גם ליכולת עריכה על ידי שהוספנו את ה edit_picnic , edit_picnics (יש דרישה להוסיף גם תצורה של רבים עם s) .
המשמעות שהוספנו לedit את המילה picnic משייכת את ה post type המתאים, כמו כן חשוב מאוד להוסיף לתוך הCPT שלכם את הcapability_type כמו כאן בשורה 9 :
$args = array(
'labels' => $labels,
'public' => true,
'hierarchical' => false,
'supports' => $supports,
'taxonomies' => array('category'),
'rewrite' => array( 'slug' => 'picnic_locations' ),
'show_in_rest' => true,
'capability_type'=>'picnic',
'has_archive' => true
);וזהו למעשה יצרנו את היוזר עם הרול המיוחד שיאפשר בהמשך ליוזרים לרשום על חוויות הפיקניק שלהם ישירות באתר שלנו.
באופן דומה נוסיף את הרול של הפיקניקרים:
// users role
add_action('init',function(){
add_role('blogger','Picnic Bloger');
$picnicer = get_role('blogger');
$picnicer->add_cap('read');
$picnicer->add_cap('edit_picnic');
$picnicer->add_cap('edit_picnics');
add_role('picnicer','Picnicer');
$picnicer = get_role('picnicer');
$picnicer->add_cap('read');
}
במקרה של פיקניקר (החל משורה 12) לא נצטרך לציין כלום מלבד read , כל מה שאנחנו צריכים מהיוזר הזה זה הרשמה בלבד. על מנת לעדכן אותו בעדכונים שקורים באתר. (בהמשך נעשה שימוש ביוזרים אלו עם דיוור ישיר).
במידה ותרצו למחוק role תהיה תוכלו לעשות זאת בקלות על ידי שימוש ב remove_role:
add_action('init',function(){
remove_role('editor');
}בפרויקט שלנו אני לא מוחק אותם , אין בעיה שהם הישארו . מי שרוצה מוזמן למחוק את כל הרולים שאינם שימושיים.
סיכום סוגי משתמשים
עכשיו שיש לנו סוגי משתמשים שונים בפרויקט, סיידבר, CPT , תפריטים, ניגש לעשות עבודה על התבנית ונחבר לUI את מה שיצרנו. בפוסט הבא נייבא את התפריט והפוסטים הייחודיים שיצרנו, ונאפשר ליוזרים רשומים לצפות בפוסטים שיוזרים לא רשומים לא יכולים לצפות+ ממשוק לרשימת התפוצה עבור יוזר שנרשם.





