טיפ וורדפרס: ביטול אפשרות עריכת פוסט מהירה
לעתים נרצה להגביל הרשאות שונות או לבטל אפשרויות שונות בממשק הניהול עבור משתמשים שונים או רמות הרשאה שונות. קיימות מספר דרכים למימוש פעולות אלה. הפעם נראה כיצד ניתן בקלות לבטל גישה אל אפשרות העריכה המהירה
ממשק הניהול של וורדפרס מאפשר גישה לעריכה מהירה של עמודים, פוסטים וסוגי התכנים המותאמים אישית. אפשרויות העריכה המהירת מכילות מספר אפשרויות בסיסיות, כמו למשל שינוי הכותרת, סלאג, עמוד אב, וכדומה, וגם אפשרויות לשינוי תבנית העמוד, עמוד האב, קטגוריות ועוד.
לאחרונה נדרשתי לאפשרות לבטל את אפשרות העריכה המהירה עבור משתמש שאינו בעל הרשאות מנהל המערכת. הסיבה היתה בעיקר למנוע מהעורך לשנות את עמוד האב, את סדר העמודים ובעיקר את תבנית העמוד. לא היה חשש שזה ייעשה בכוונה, אם כי בשוגג.
ההנחה היא, שאם אפשרויות אלו פשוט לא יהיו שם אז יהיה קל יותר, זאת מאשר להנחות את העורכים שלא להשתמש בשדות אלה וגם לקוות שיזכרו או שלא ינסו בכל זאת לראות איך זה משפיע על האתר. שדות אלה, של קביעת תבנית עמוד, עמוד האב וכדו', הוסרו כבר מתוך ממשק הניהול הפנימי של העמוד עצמו, אך עדיין הטרידה העובדה שהם נגישים לשינוי דרך אפשרות העריכה המהירה שבמסך העריכה של ריכוז העמודים. לכן עלתה הבקשה לבטל כליל את אפשרות העריכה המהירה עבור מי שאינו מנהל מערכת באתר וורדפרס מסויים.
הוספת הקוד הבא אל קובץ הפונקציות functions.php של ערכת העיצוב שלכם, או אל קובץ פונקציות מותאם אישית, תעלים את האפשרות העריכה המהירה:
[ccwn_php]
[/ccwn_php]
לחילופין, אם רוצים להשאיר את הקישור לעריכה מהירה, אבל רק להסתיר את החלון השמאלי שלו, זה שבו מתאפשר שינוי עמוד האב ותבנית העמוד, אפשר להחליף את שורה 7 לעיל בשורה הזו:
[ccwn_css]
fieldset.inline-edit-col-right {display:none !important;}
[/ccwn_css]
חשוב לציין, שהשיטה הזו אינה חוסמת ממש ומסננת מבחינת הרשאות בשרת את הגישה לאפשרויות עריכה המהירה, אלא פשוט מסתירות את הכפתור ע"י שימוש ב-CSS פשוט. ההנחה היתה שאין במקרה הזה צורך בקביעת הרשאה קשיחה, אלא מספיק להעלים את התפריט כדי שלא יגשו אליו.
כמובן, אם רוצים לחסום "הרמטית" יותר את התפריט, אז הדבר שלעיל אינו מספיק, מאחר שמי שקצת מבין יוכל להפעיל פיירבאג ולבטל את ההסתרות כדי להשתמש בתפריט המוסתר.
5 תגובות »
פיד RSS לתגובות בפוסט | טראקבק
האמת היא שקיים פילטר ממש עבור שנתקלתי בו לאחרונה זה:
פועל פה ה-code?
add_filter( 'post_row_actions', 'my_hide_quick_edit' );
function my_hide_quick_edit( $actions ) {
if ( !current_user_can( 'administrator' ) ) {
unset( $actions['inline hide-if-no-js'] );
}
return $actions;
}
יותר נקי לדעתי… במקום להוסיף קוד, מחסירים 🙂
נמצא ב-wp-admin/includes/template.php שורה 1369
פילטר נחמד כי הוא מאפשר להוסיף קישורים נוספים שם.
כמובן שזה גם לא חוסם הרמטית. חסימה מוחלטת תהיה קצת יותר מסובכת ומסוכנת:
add_action( 'admin_init', 'my_disable_inline_save' );
function my_disable_inline_save( ) {
if ( !current_user_can( 'administrator' ) &&
isset( $_REQUEST['action'] ) &&
$_REQUEST['action'] == 'inline-save' ) {
die();
}
}
למרות שזה נראה פשוט, אני לא בטוח שהפונקציה הזו היא ללא תופעות לוואי.
לגבי 2 האפשרויות הנוספות –
בראשונה נתקלתי גם בזמנו והיא פשוט לא עובדת, לא חקרתי למה.
השניה היא בעייתית לטעמי, מאחר שהיא לא מסירה את הלינק לתפריט העריכה המהירה עצמו, אלא רק מונעת שמירה של השינויים שנעשים בתפריט הזה.
זאת מאחר שהסופר גלובל $_REQUEST['action'] מקבל את הערך inline-save בזמן של שמירה דרך עריכה מהירה.
אם כך, בשביל מה לסבך את העניינים ולהמשיך להציג לו את התפריט?
לדעתי נקי יותר זה שהמשתמש רואה רק את מה שהוא צריך בהתאם להרשאה שלו, ולא לתת לו אפשרות שהוא יוכל להשתמש בה אבל לא לבצע שמירה.
בכל אופן תודה 🙂
אבהיר רק שהחסימה בצד שרת של ה-action יכולה לבוא בנוסף על העלמת הממשק, אני מסכים לחלוטין שאין הגיון להציג כפתורים שלא פועלים.
הפילטר בשיטה הראשונה דואג שהממשק לא יווצר כלל, לא רק מעלים אותו. הוא נבדק ופעל אצלי ב-3 (למרות שלא בדקתי את זה עם הרשאות שונות)
כמובן שכל השיטות תקפות. מה שפועל פועל.
תודה,
רונן
טיפ יפה, ושימושי.
.-= פורסם לאחרונה אצל רמי.. להגדיר מספר מילים מקסימאלי-מינימאלי לפוסט ולכותרת =-.
לדעתי טיפ חשוב ושימושי
.-= פורסם לאחרונה אצל זיו לפיד.. חיפוש והחלפה בוורד —כאשר כותבים מסמך בתוכנת וורד ישנה אפשרות בשם חיפוש והחלפההערה- בכל פעולה צריך להשחיר את המסמךברגע שנפתחת תיבת דו -שיח בשם חיפוש והחלפה1 כותבים את המילה שאתם מחפשים 2 ללחוץ עם העכבר על אופציית חפש את הבאהערה- ישנה אפשרות לסמן באיזו צורה אנחנו מעוניינים לחפש =-.