דף הבית » טריקים וטיפים, מומלצים

איך למנוע ממשתמשים רשומים לגשת למערכת הניהול

16 בספטמבר 2010 | מאת רמי | 9 תגובות | תגיות: , , , ,

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

למנוע גישה למערכת הניהול

למנוע גישה למערכת הניהול

אז איך עושים את זה?

כדי למנוע ממשתמשים רשומים לגשת למערכת הניהול, יש להוסיף את הקוד הבא לקובץ function.php בערכת העיצוב:

function prevent_admin_access() {
    if (strpos(strtolower($_SERVER['REQUEST_URI']), '/wp-admin') !== false && !current_user_can('administrator')) {
        wp_redirect(get_option('siteurl'));
    }
}
add_action('init', 'prevent_admin_access', 0);

הקוד לא מורכב, קודם בודקים אם ב-URI מופיע הספרייה /wp-admin ושהמשתמש הנוכחי הוא לא מנהל מערכת. אם זה משתמש מערכת, הוא מקבל גישה למערכת הניהול. אחרת אם מדובר במשתמש אחר, נעביר אותו לעמוד הראשי של האתר.

מאת רמי

אחראי על אתר וורדפרס בעברית ועל תרגום ושחרור גרסאות וורדפרס בעברית. מפתח ליבה, בכל גרסה החל מגרסה 2.8, מפתח מוביל בגרסה 4.4 ובגרסה 4.6. מספק שירותי פיתוח אתרים, פיתוח תוספי וורדפרס לסטרטאפים ופיתוח כלים למפתחי וורדפרס - GenerateWP.com.

9 תגובות »

  • חתול כותב :

    השורות של הקוד ארוכות מדי ולכן לא רואים את כולו.
    ואם להיות קצת נודניק !== false מיותר, זה ממילא ביטוי בוליאני.

  • מאור כותב :

    בדקת אם זה עובד?
    לפי הקוד זה נראה שזה אמור לעבוד, אבל משום מה גם כשהאדמין עושה לוגין זה מכניס אותו לתנאי ועושה את הפניית ה-URL.

  • רמי כותב :

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

  • ארז כותב :

    יש טעות בקוד, צריך לשנות את:

    !current_user_can('Administrator')

    ל:

    !current_user_can('administrator')

    (a גדולה לקטנה)

  • רמי כותב :

    תוקן. תודה ארז.

  • מתי כותב :

    בקוד וורדפרסי אני עושה את זה ככה:

    function check_level()
    {
       if($GLOBALS['user_level'] < 10)
          wp_redirect(get_option('home'));
    }

    add_action('admin_init', 'check_level');

    ככה הפונקציה נקראת אך ורק באדמין.

  • רמי כותב :

    מתי, אני מקבל את הערתך, במקרה זה שימוש ב-admin_init עדיף על פני init.

  • מאור ברזני כותב :

    עדיף להשתמש ב admin_init וגם לוודא שאתה לא מכחיד קריאות Ajax שנקראות מהצד הקדמי. הקוד שכתבת למעלה עלול לגרום בעיות.

    מומלץ להשתמש לצורך זה במה שמופיע כאן –
    http://plugins.svn.wordpress.org/remove-dashboard-access-for-non-admins/tags/0.3/remove-wp-dashboard-access.php

    שהוא בעצם התוסף הזה – http://wordpress.org/extend/plugins/remove-dashboard-access-for-non-admins/

    בהצלחה

  • רמי כותב :

    מקבל את ההערות שלך. תודה על העדכון.

הוסף תגובה !

נא לא לשאול שאלות שלא קשורות לפוסט, זהו לא פורום תמיכה. לבעיות אישיות ונושאים מורכבים אפשר ליצור איתי קשר.

תגיות HTML מורשות לשימוש:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>