كيفية إضافة عضو ووردبريس جديد برمجيا

إنشاء حساب برتبة مدير دون الدخول إلى لوحة التحكم ووردبريس

في هذه التدوينة سأتطرق لموضع مهم جدا وهو كيفية إضافة عضو ووردبريس جديد برمجيا، أي دون الدخول إلى لوحة التحكم.

ربما تكون قد فقدت كلمة المرور، أو أن أحدهم قام باختراق موقعك والسيطرة عليه لكن لازال بإمكانك الدخول للموقع عبر ftp أو cPanel، أو أن أحد عملائك أعطاك بيانات الاستضافة لكن نسي إعطائك اسم المستخدم وكلمة مرور لوحة تحكم ووردبريس… المهم أنك تريد الدخول إلى لوحة تحكم ووردبريس لكن لا تستطيع، الحل الوحيد في هذه الحالة هو إضافة عضو جديد بدور مدير.

هناك طريقتين للقيام بهذا العمل، اﻷولى عن طريق الدخول لل phpMyAdmin وملأ البيانات يدويا في جدول wp_users، والثانية هي عن طريق الكود.

اقرأ أيضا: تنبيهات عبر البريد الإليكتروني عند حدوث تغييرات في موقعك

أنا أفضل الطريقة الثانية ﻷنها هي اﻷفضل واﻷسرع.

الدالة التي سنستعملها هنا هي ()wp_create_user، هذه الدالة تقبل ثلاث معاملات (parameters) اﻷول هو اسم المستخدم (إجباري)، الثاني كلمة المرور (إجباري) والثالث البريد الإلكتروني (اختياري)، على هذا الشكل: wp_create_user( $username, $password, $email )

بكل بساطة الشفرة التي سنستخدمها ﻹنشاء حساب برتبة مدير برمجيا سيكون كالآتي:

اقرأ أيضا: عرض محتوى المقالات على شكل أعمدة

/**
 * Add a new WordPress user.
 *
 * @return void
 */
function sb_create_user() {

    /**
     * The user username
     */
    $user = 'said';

    /**
     * The user password
     */
    $pass = '123456';

    /**
     * The user email
     */
    $email = '[email protected]';

    if ( ! username_exists( $user ) && ! email_exists( $email ) ) { // Check if the user does not exist in the database.
        $user_id = wp_create_user( $user, $pass, $email ); // Create the new user.
        $user    = new WP_User( $user_id ); // Get the information of the new user in the database.
        $user->set_role( 'administrator' ); // Set the new user as administrator.
    }
}
add_action( 'init', 'sb_create_user' );

الشفرة سهلة الفهم، في البداية قمنا بإنشاء المتغيرات $user, $pass, $email التي تحتوي على بيانات الحساب الذي سنقوم بإنشائه، بعدها قمنا بالتحقق من عدم وجود حساب آخر بنفس اسم المستخدم أو نفس البريد الإلكتروني (السطر 26) تم قمنا بإنشاء الحساب باستعمال wp_create_user() السطر 27) وتغيير رتبته إلى مدير بواسطة الكلاس WP_User والدالة التابعة له set_role() الذي يقبل معامل (parameter) واحد وهو اسم الرتبة، في هذه الحالة وضعنا له administrator.

اﻵن يمكنك الدخول لموقعك باستعمال اسم المستخدم وكلمة المرور اللذان قمت بتحديدهما في المتغيرين $user و $pass.

أتمنا أن تكون قد استفدت من هذه التدوينة، شكرا على الزيارة 🙂

اقرأ أيضا: الدليل الشامل لأنواع المقالات المخصصة في ووردبريس

close

قم بالتسجيل على قائمتي البريدية لكي تكون من الأوائل في الحصول على تدوينات وشروحات حصرية

أنا لا أرسل أبدا البريد المزعج! اقرأ سياسة الخصوصية لمزيد من المعلومات.

12 تعليق

  1. موضوع مميز جدا بارك الله فيك , كنت قد طلبت منك سابقا ان تشرح لنا إنشاء قائمة بريدية و نظام تسجيل الدخول للمشتركين لو تتذكر من حوالي سنة تقريبا أرجو منك اخي الكريم أن تعلمنا مما علمك الله

    1. السلام عليكم أخي،

      أنا شخصيا أستعمل إضافة Mailpoet لهذا الغرض و سبب عدم شرحي لها لحد الساعة هو ضيق الوقت ﻷنها إضافة كبيرة و شرحها في تدوينة واحدة غير ممكن …

      1. نحن في انتظارك و ما لا يدرك كله لا يترك كله لو فقك تفتح لنا رؤوس اقلام او ترشدنا إلى شروحات باللغة العربية في أي مكان , لك رسالة على الخاص

  2. أخي سعيد جربت الكود على مستوى السيرفر لوكال لأنني صادفت المشكل عند دخولي كآدمن وعند البحث عثرت على صفحتك هذه لكن الكود أعلاه لم يأتي بأي نتيجة تذكر . علما أنني وضعت إيميل جديد واليوزرنيم والباسورد ولم تنفع معي وهرعت إلى الطريقة التقليدية التي وصفتها في الأول هي التي نفعت معي هل تعتقد أن المسألة فيها إرسال للبريد أو أنها لاتعمل على السيرفر المحلي أو أن الكود ينقصه شيء ما أو شيء من هذا القبيل

    1. عفوا ظهرت النتيجة بنجاح أخيرا لكنها تتأخر كثيرا ولم تظهر معي إلا بعد مدة 5 دقائق تقريبا

      يعني بعد محاولات دخول فاشلة بعدها وضعت التعليق أعلاه ودخلت بالطريقة التقليدية

      وتعمدت الدخول إلى صفحة الأعضاء ولم أجد شيئا شكيت في الكود يكون فيه أي خطأ أو ماشابه

      ثم بعد برهة ظهرت أخيرا

      هذا ما وقع معي وشكرا جزيلا لك على طرحك للموضوع

      1. الوظيفة كما هو واضح يتم تنفيذها في الخذاف [code lang=”php” inline=”true”]init[/code]، ما يعني أنها تنفّذ مباشرة بعد اشتغال ووردبريس، هذا يعني أن عليك إعادة تحميل أي صفحة لكي يتم تنفيذ الكود …

        1. أظن أنها لم تنفع معك في المرة الأول لأنك وضعت نفس إسم مستخدم موجود مسبقا في قاعدة البيانات… إذا لاحظت في السطر 5 أنه يتم التحقق من إسم المستخدم والبريد الإلكتروني.

          جرب وضع بريد الكتروني وإسم مستخدم جديدين وسيعمل.

اترك تعليقًا

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *