إنشاء لوحة تسجيل دخول مخصصة لووردبريس بدون استخدام الإضافات
تُعتبر منصة ووردبريس (WordPress) واحدة من أكثر أنظمة إدارة المحتوى شيوعًا واستخدامًا حول العالم، ويرجع ذلك إلى مرونتها الكبيرة وسهولة تخصيصها لتلبية متطلبات المستخدمين المختلفة. واحدة من العناصر الأساسية التي يحتاج المطورون وأصحاب المواقع إلى التحكم بها هي صفحة تسجيل الدخول (Login Page)، والتي تُعد بوابة الدخول إلى لوحة التحكم الخاصة بالموقع. في هذا المقال، سنستعرض بالتفصيل كيفية إنشاء لوحة تسجيل دخول مخصصة على ووردبريس بدون الحاجة إلى استخدام إضافات خارجية، مع التركيز على الكود البرمجي والتنفيذ العملي بحيث يكون الموقع أكثر تميزًا وأمانًا.
أهمية تخصيص صفحة تسجيل الدخول في ووردبريس
صفحة تسجيل الدخول التقليدية في ووردبريس تتميز ببساطتها، لكنها تفتقر إلى الطابع الشخصي والتصميم الذي ينسجم مع هوية الموقع. تعديل صفحة تسجيل الدخول له فوائد عدة، من بينها:
-
تحسين تجربة المستخدم: من خلال تخصيص التصميم يمكن تقديم صفحة تسجيل دخول تتوافق مع الهوية البصرية للموقع مما يخلق انطباعًا إيجابيًا لدى المستخدمين.
-
زيادة الأمان: بإمكان التخصيص أن يشمل تقنيات حماية إضافية مثل إعادة توجيه المستخدمين، إخفاء صفحة تسجيل الدخول الافتراضية أو إضافة رموز تحقق بسيطة.
-
توفير سرعة وأداء أعلى: تجنب الاعتماد على إضافات ثقيلة يمكن أن يؤثر على سرعة الموقع.
-
تحكم كامل بالكود: مما يتيح مرونة كبيرة في التعديل والتطوير حسب الحاجة.
آلية عمل صفحة تسجيل الدخول في ووردبريس
قبل البدء في التخصيص، من المهم فهم كيفية عمل صفحة تسجيل الدخول الافتراضية في ووردبريس. عند طلب صفحة تسجيل الدخول (عادةً عبر الرابط wp-login.php)، يعرض النظام نموذجًا يحتوي على حقول إدخال اسم المستخدم وكلمة المرور مع أزرار التفعيل.
يتم تنفيذ التحقق من صحة بيانات الاعتماد من خلال ملفات النظام الأساسية، وإذا كانت صحيحة يتم منح المستخدم حق الدخول إلى لوحة التحكم، وإذا لم تكن صحيحة تظهر رسالة خطأ. كل هذا يتم تلقائيًا باستخدام الوظائف الداخلية لووردبريس.
خطوات إنشاء صفحة تسجيل دخول مخصصة بدون إضافات
سنقوم بإنشاء صفحة تسجيل دخول جديدة خاصة بالموقع، مع تصميم مميز، وربطها مع النظام الأساسي للمصادقة في ووردبريس، مع إلغاء أو إخفاء صفحة تسجيل الدخول الافتراضية.
1. إنشاء قالب صفحة تسجيل دخول جديد
نبدأ بإنشاء ملف قالب جديد داخل مجلد قالب الموقع (theme) الحالي. على سبيل المثال:
-
انتقل إلى مجلد القالب عبر المسار:
wp-content/themes/your-theme/ -
أنشئ ملفًا جديدًا باسم
custom-login.php
ثم أضف في بداية الملف التعريف التالي:
php
/*
Template Name: صفحة تسجيل دخول مخصصة
*/
?>
هذا التعريف يجعل الملف قالبًا يمكن استخدامه في إنشاء صفحة جديدة من داخل لوحة التحكم.
2. إنشاء صفحة تسجيل دخول جديدة باستخدام القالب
من خلال لوحة التحكم، انتقل إلى:
-
الصفحات > إضافة جديد
-
قم بإنشاء صفحة جديدة مثلًا باسم “تسجيل الدخول”
-
اختر قالب الصفحة “صفحة تسجيل دخول مخصصة” من قائمة القوالب الجانبية
-
قم بنشر الصفحة
3. تصميم نموذج تسجيل الدخول في القالب
في ملف custom-login.php، نضيف نموذج HTML يحتوي على حقول اسم المستخدم وكلمة المرور وزر تسجيل الدخول. كما يمكن استخدام دوال ووردبريس للمصادقة والتعامل مع الأخطاء.
إليك نموذجًا كاملاً متكاملًا مع معالجة البيانات:
php
/*
Template Name: صفحة تسجيل دخول مخصصة
*/
if ( is_user_logged_in() ) {
// إذا كان المستخدم مسجلاً دخوله، يتم إعادة توجيهه للصفحة الرئيسية أو لوحة التحكم
wp_redirect( home_url() );
exit;
}
$login_error = '';
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$creds = array();
$creds['user_login'] = sanitize_user( $_POST['username'] );
$creds['user_password'] = $_POST['password'];
$creds['remember'] = isset($_POST['rememberme']) ? true : false;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ) {
$login_error = $user->get_error_message();
} else {
wp_redirect( home_url() );
exit;
}
}
?>
"ar" dir="rtl">
"UTF-8">
تسجيل الدخول
class="login-container">
<h2>تسجيل الدخولh2>
php if ( $login_error ) : ?>
<div class="error-msg">php echo esc_html( $login_error ); ?>div>
php endif; ?>
<form method="post" action="">
<label for="username">اسم المستخدمlabel>
<input type="text" id="username" name="username" required autofocus>
<label for="password">كلمة المرورlabel>
<input type="password" id="password" name="password" required>
<div class="remember-me">
<label for="rememberme">تذكرنيlabel>
<input type="checkbox" id="rememberme" name="rememberme">
div>
<button type="submit">دخولbutton>
form>
div>
body>
html>
شرح الكود أعلاه:
-
تحقق من حالة تسجيل الدخول، إذا كان المستخدم مسجلاً دخوله يتم إعادة توجيهه تلقائيًا إلى الصفحة الرئيسية.
-
إذا تم إرسال بيانات النموذج (POST)، يتم استخدام دالة wp_signon لمحاولة تسجيل الدخول.
-
في حال وجود خطأ، يتم عرض رسالة الخطأ.
-
تصميم الصفحة مبني باستخدام CSS مدمج داخل الصفحة لجعلها متناسقة وبسيطة.
-
نموذج HTML يحتوي على حقول الاسم وكلمة المرور وزر تذكرني.
4. تعطيل الوصول إلى صفحة تسجيل الدخول الافتراضية
لتجنب إمكانية الوصول إلى صفحة wp-login.php الافتراضية والتي قد تخل بتجربة المستخدم، يمكن حظر أو إعادة توجيه هذه الصفحة إلى صفحة تسجيل الدخول المخصصة التي أنشأناها.
أضف الشيفرة التالية إلى ملف functions.php الخاص بالقالب:
phpfunction redirect_wp_login_page() {
$login_page = home_url('/تسجيل-الدخول/'); // عنوان صفحة تسجيل الدخول الجديدة
$request = $_SERVER['REQUEST_URI'];
if ( strpos($request, 'wp-login.php') !== false || strpos($request, 'wp-admin') !== false ) {
if ( !is_user_logged_in() ) {
wp_redirect($login_page);
exit;
}
}
}
add_action('init', 'redirect_wp_login_page');
شرح الكود:
-
إذا حاول مستخدم غير مسجل الدخول الوصول إلى صفحة wp-login.php أو لوحة التحكم wp-admin، يتم تحويله إلى صفحة تسجيل الدخول المخصصة.
-
هذه الطريقة تحافظ على أمان الموقع وتجعل تجربة الدخول أكثر موحدة.
5. تحسين الأمان والوظائف الإضافية
5.1 حماية صفحة تسجيل الدخول من الهجمات (Brute Force)
يمكن إضافة بعض الإجراءات البسيطة التي تحد من محاولات تسجيل الدخول المتكررة من نفس IP لمنع الهجمات.
مثال بسيط في ملف functions.php:
phpfunction limit_login_attempts() {
session_start();
if ( !isset($_SESSION['login_attempts']) ) {
$_SESSION['login_attempts'] = 0;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['username'])) {
if ($_SESSION['login_attempts'] >= 5) {
wp_die('تم حظر الدخول بعد 5 محاولات غير ناجحة. يرجى المحاولة لاحقًا.');
}
}
}
add_action('init', 'limit_login_attempts');
function increase_login_attempts($user, $username, $password) {
if ( is_wp_error($user) ) {
session_start();
$_SESSION['login_attempts'] += 1;
} else {
session_start();
$_SESSION['login_attempts'] = 0;
}
return $user;
}
add_filter('wp_authenticate_user', 'increase_login_attempts', 10, 3);
هذه الإضافة البسيطة تعتمد على جلسة PHP لتتبع عدد المحاولات وتوقف بعد تجاوز الحد.
5.2 إعادة توجيه المستخدمين بعد تسجيل الدخول
يمكن التحكم في الصفحة التي يتم توجيه المستخدم إليها بعد تسجيل الدخول باستخدام فلتر login_redirect:
phpfunction custom_login_redirect($redirect_to, $request, $user) {
// التحقق من أن المستخدم مصادق عليه
if ( isset($user->roles) && is_array($user->roles) ) {
if ( in_array('administrator', $user->roles) ) {
return admin_url();
} else {
return home_url();
}
} else {
return $redirect_to;
}
}
add_filter('login_redirect', 'custom_login_redirect', 10, 3);
مقارنة بين إنشاء صفحة تسجيل دخول مخصصة بدون إضافات واستخدام الإضافات
النقطة
صفحة تسجيل دخول مخصصة بدون إضافات
استخدام الإضافات
الأداء
أفضل أداء بسبب عدم تحميل إضافات خارجية
قد تؤثر بعض الإضافات على سرعة الموقع
الأمان
يعتمد على البرمجة الجيدة وسهولة التخصيص
توفر إضافات متقدمة لأنظمة حماية متعددة
المرونة في التخصيص
تحكم كامل في الكود والتصميم
مرونة محدودة بناءً على خيارات الإضافة
سهولة الاستخدام
يحتاج معرفة برمجية متوسطة إلى عالية
سهلة الاستخدام، خاصة للمبتدئين
التحديث والصيانة
يتحمل المطور مسؤولية التحديث والتوافق مع إصدارات ووردبريس
تحديثات دورية من مطوري الإضافات
الاعتماد على طرف ثالث
لا يوجد اعتماد، الكود ملكك بالكامل
الاعتماد على مطور الإضافة والتحديثات
خلاصة واستنتاجات
إن إنشاء صفحة تسجيل دخول مخصصة في ووردبريس بدون استخدام إضافات خارجية يمنحك حرية كاملة في التحكم بالتصميم والوظائف مع تحسين الأداء والأمان من خلال كتابة كود موجه خصيصًا لاحتياجات موقعك. يتطلب هذا الأسلوب معرفة جيدة بلغات البرمجة الأساسية مثل PHP وHTML وCSS، فضلاً عن فهم عميق لهياكل ووردبريس.
بتنفيذ الخطوات الموضحة، يمكن لأي مطور أو مسؤول موقع بناء صفحة تسجيل دخول متطورة ومتناسقة مع هوية الموقع، مع إمكانية إضافة خصائص أمان إضافية مثل الحد من محاولات الدخول وحماية إعادة التوجيه.
يبقى التحدي الأكبر هو المحافظة على الكود محدثًا ومتوافقًا مع تحديثات ووردبريس، وهو ما يتطلب متابعة مستمرة من المطورين.
المصادر والمراجع
بهذا التفصيل الشامل تم توضيح كيفية بناء لوحة تسجيل دخول مخصصة لووردبريس بدون إضافات، مع التركيز على الأداء، الأمان، وتجربة المستخدم، مما يجعل هذا الأسلوب خيارًا مثاليًا للعديد من المواقع التي تسعى إلى تفرد وتميز في كل تفاصيلها التقنية.

