شارك المقال

كيفية مشاركة عمليات تسجيل الدخول والمستخدمين بين مواقع وورد بريس المتعددة

A VPN is an essential component of IT security, whether you’re just starting a business or are already up and running. Most business interactions and transactions happen online and VPN

هدفنا هو إعداد موقعين إلكترونيين على وورد بريس يتشاركان بيانات تسجيل الدخول ونفس المستخدمين. بمجرد اشتراك المستخدم في موقع ويب واحد ، سيكون قادرًا على الوصول إلى موقع الويب الآخر بنفس الدور والإمكانيات.

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

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

هام: لن يعمل ما يلي خارج الصندوق في بيئة Kinsta نظرًا لأننا نسمح فقط بتثبيت وورد بريس واحد لكل موقع (إلا إذا كنت تقوم بتشغيل وورد بريس متعدد المواقع ). قد يكون من الممكن تشغيل هذا على نظامنا الأساسي ، ولكنه سيتطلب بعض الإعداد أو التطوير الإضافي. نوصي بمناقشة هذا الأمر مع مطور وورد بريس .

بيانات المستخدم والبيانات الوصفية

افتراضيا، ومخازن وورد بيانات المستخدم ذات الصلة إلى ثلاثة جداول: {$pref}options، {$pref}usersو {$pref}usermeta.

و {$pref}optionsيخزن الجدول على قائمة كاملة من الأدوار والقدرات المتاحة على التوالي الذي هو مجال option_key {$pref}user_roles.

في {$pref}usersمخازن جدول بيانات المستخدم الأساسية، مثل تسجيل الدخول وكلمة السر والبريد الإلكتروني، العنوان، الخ

في {$pref}usermetaمخازن جدول بيانات تعريف المستخدم.

عند العمل على تثبيتات وورد بريس جديدة ، لا يتعين علينا الاهتمام {$pref}user_rolesبالصف في {$pref}optionsالجدول ، لأن حقل option_value المقابل له دائمًا نفس القيمة. يجب أن ننظر في هذا الصف فقط في حالة عملنا على التركيبات الحالية حيث تم تغيير الأدوار أو القدرات.

لا داعي للقلق بشأن {$pref}usersالجدول أيضًا ، لأنه يخزن بيانات المستخدم الأساسية التي لن نغيرها عند مشاركة المستخدمين بين مواقع الويب.

و {$pref}usermetaالجدول هو الجدول فقط ونحن في طريقنا لتحديث لتحقيق هدفنا.

المستخدمون وهيكل جدول المستخدمين (المصدر: وصف قاعدة بيانات الدستور الغذائي)

المستخدمون وهيكل جدول المستخدمين

(المصدر: وصف قاعدة بيانات الدستور الغذائي )

{$pref}usermetaيخزن البيانات الوصفية للمستخدم في أزواج مفتاح / قيمة. في هذا الجدول ، تخزن خمسة صفوف البيانات التي يجب أن نأخذها في الاعتبار.

خمسة صفوف في بيانات مخزن جدول المستخدم فيما يتعلق بإمكانيات المستخدم وإعدادات المستوى ولوحة القيادة

خمسة صفوف في بيانات مخزن جدول المستخدم فيما يتعلق بإمكانيات المستخدم وإعدادات المستوى ولوحة القيادة

يحتوي الصف الأول على حقل meta_key مضبوط على {$pref}capabilities، وحقل meta_value المقابل عبارة عن مصفوفة متسلسلة تحتوي على دور المستخدم. يخزن الصف الثاني مستوى المستخدم (لاحظ أن مستويات المستخدم تم إهمالها من وورد بريس 3.0). تتعلق الصفوف الثلاثة المتبقية بإعدادات لوحة القيادة التي لن نتعمق فيها في هذا المنشور.

دور المستخدم والمستوى والإعدادات خاصة بتثبيت وورد بريس ويتم تحديدها بنفس $prefالقيمة. إنها جزء مهم من المعلومات عندما يكون هدفنا هو مشاركة المستخدمين بين مواقع الويب ، لأنه سيتعين علينا تكرار هذه الصفوف وتغيير meta_keyالحقل وفقًا لذلك.

هذا كل ما يتعين علينا معرفته حول جداول المستخدم عندما نهدف إلى مشاركة عمليات تسجيل الدخول والمستخدمين بين عمليات تثبيت وورد بريس الجديدة. عند العمل على مواقع الويب الحالية ، يجب أن نأخذ في الاعتبار أن العديد من المكونات الإضافية تضيف صفوفًا إضافية إليها {$pref}usermeta، وقد يُطلب منا إلقاء نظرة أعمق على جداول قاعدة البيانات.

بعد أن قيل عن جداول المستخدم ، يمكننا المضي قدمًا خطوة إلى الأمام. الآن علينا تحديد ثابتين محددتين في ملف wp-config.php .

تحديد جداول المستخدم المخصصة – مشاركة عمليات تسجيل الدخول

يتيح لنا وورد بريس تعيين جداول مخصصة بدلاً من {$pref}usersو {$pref}usermeta. هذا يعني أنه إذا كان اثنان (أو أكثر) من مواقع وورد بريس تشتركان في قاعدة بيانات واحدة ، فيمكننا تعيين نفس المستخدمين وجداول المستخدمين لكل منهم. نتيجة لذلك ، فإن جميع مواقع الويب التي تشارك هذا الجدول ستشارك نفس المستخدمين.

ملاحظة: لمشاركة نفس المستخدمين وجداول المستخدمين نفسها ، يجب أن تشترك عمليات تثبيت وورد بريس في نفس قاعدة البيانات.

نحن بحاجة فقط لتحديد CUSTOM_USER_TABLEو CUSTOM_USER_META_TABLEإلى الفسفور الابيض بين ملف config.php ملف، كما هو موضح في التعليمات البرمجية التالية:

// custom users and usermeta tables
define( 'CUSTOM_USER_TABLE', 'my_users_table' );
define( 'CUSTOM_USER_META_TABLE', 'my_usermeta_table' );

ملاحظة: في مواقع الويب الحالية ، من الضروري إجراء نسخ احتياطي لعمليات تثبيت وورد بريس قبل إجراء أي تغييرات على ملفات wp-config.php وجداول البيانات

الآن بعد أن عرفنا ما يجب القيام به ، حان الوقت لتشغيل اثنين من تثبيتات وورد بريس الخاصة بنا.

تثبيت ووردبريس

للراحة، وسوف تسمية المجلدات وورد الجذر الأول و الثاني . first_و second_سوف تكون بادئة الجدول منها.

لنقم الآن بتشغيل التثبيت الأول.

في هذا المثال ، قمنا بتعيين حقل بادئة الجدول إلى first_

في هذا المثال ، قمنا بتعيين حقل بادئة الجدول إلى first_

ملاحظة: ستشترك جميع عمليات التثبيت في قاعدة بيانات واحدة ، ويجب أن نوفر لكل تثبيت بادئة جدول فريدة.

عندما يتم تشغيل موقع وورد بريس الأول ، يمكننا تحرير ملف التكوين الخاص به. افتح /first/wp-config.php وأضف الأسطر التالية فوق تعليق “إيقاف التحرير” :

$table_prefix  = 'first_';

define('WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// custom users and usermeta tables
define( 'CUSTOM_USER_TABLE', $table_prefix . 'users' );
define( 'CUSTOM_USER_META_TABLE', $table_prefix . 'usermeta' );

/* That's all, stop editing! Happy blogging. */

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

ثم، قمنا بتحديد CUSTOM_USER_TABLEو CUSTOM_USER_META_TABLEالثوابت ل first_usersو first_usermetaالجداول. بهذه الطريقة لا نقوم بتغيير الإعدادات الافتراضية لـ وورد بريس.

تريد أن تعرف كيف زدنا من حركة المرور لدينا أكثر من 1000 ٪؟

انضم إلى أكثر من 20000 آخرين ممن يتلقون رسائلنا الإخبارية الأسبوعية مع نصائح من الداخل حول وورد بريس!

إشترك الآن

لقد انتهينا من التثبيت الأول. بعد ذلك ، يتعين علينا نسخ wp-config.php من مجلد التثبيت الأول ولصقه في المجلد الجذر للتثبيت الثاني. احرص على تغيير قيمة $ table_prefix وفقًا لذلك:

$table_prefix  = 'second_';

define('WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// custom users and usermeta tables
define( 'CUSTOM_USER_TABLE', 'first_users' );
define( 'CUSTOM_USER_META_TABLE', 'first_usermeta' );

CUSTOM_USER_TABLEUSTOM_USER_META_TABLEيتم تعيين و C على قيم التثبيت الأولى: first_usersو first_usermeta. هذا كل شيء للتثبيت الأول.

مشاركة تسجيلات الدخول

يدرك وورد بريس المستخدمين الحاليين ويجب علينا تعيين عنوان بريد إلكتروني غير موجود للمستخدم المسؤول

عند تشغيل التثبيت الثاني ، يجب علينا تعيين عنوان بريد إلكتروني غير موجود للمستخدم المسؤول حيث يعثر وورد بريس على عدد من المستخدمين الحاليين من first_usersالجدول.

يقوم وورد بريس بإنشاء اسم مستخدم مسؤول للتثبيت الثاني

يقوم وورد بريس بإنشاء اسم مستخدم مسؤول للتثبيت الثاني

قم بتسجيل الدخول إلى لوحة إدارة التثبيت الثانية كمسؤول وقم بإدراج مستخدمي وورد بريس. ستجد المستخدم الإداري الجديد وجميع المستخدمين من موقع الويب الأول (وهذا يسمح لهم بمشاركة معلومات تسجيل الدخول). في هذه المرحلة ، لن يتمكن المستخدمون من موقع واحد من تسجيل الدخول إلى موقع الويب الآخر.

لن يرث المستخدمون في موقع الويب الثاني أدوارهم من موقع الويب الأول

لن يرث المستخدمون في موقع الويب الثاني أدوارهم من موقع الويب الأول

لمنح المستخدمين نفس الإمكانيات في كلا الموقعين ، يتعين علينا تحديث {$pref}usermetaالجدول.

هل تعاني من مشاكل التوقف و وورد بريس؟ Kinsta هو حل الاستضافة المصمم لتوفير الوقت! تحقق من ميزاتنا

الأدوار والقدرات

إذا كنت تقوم بتشغيل تثبيتات وورد بريس جديدة ، فلا داعي للقلق بشأن {$pref}optionsالجدول. تحتاج فقط إلى تحديث {$pref}usermetaالجدول.

في هذا المثال، عند إنشاء مستخدم جديد في الموقع الأول، وورد يضيف first_capabilitiesو first_user_levelالصفوف في first_usermeta table. لمنح حق الوصول إلى موقع الويب الثاني ، يجب تكرار هذه الصفوف ، كما هو موضح في الصورة أدناه:

الحقول_المصورة الثانية

عند إنشاء مستخدم جديد في الموقع الثاني، second_capabilitiesو second_user_levelسيتم إضافة صفوف إلى first_usermetaالجدول.

من أجل إعطاء نفس الأدوار وقبعات للمستخدمين عبر مواقع الإنترنت، first_capabilitiesو first_user_levelيجب تكرار الصفوف في second_capabilitiesو second_user_level. باستخدام هذين الزوجين من الصفوف في نفس first_usermetaالجدول ، سيتمكن المستخدمون من الوصول إلى كلا الموقعين بنفس الامتيازات.

لتحديث جميع صفوف usermeta الموجودة ، يمكنك تشغيل استعلام SQL أو تحديث الجداول من phpMyAdmin . ولكن ماذا عن المستخدمين الذين سيشتركون في مواقعنا الإلكترونية من الآن فصاعدًا؟ وفقًا لـ وورد بريس Codex ، سنستخدم مكونًا إضافيًا أو نبني وظيفة مخصصة.

وها نحن ذا!

تكرار القبعات والمستويات تلقائيًا باستخدام وظيفة

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

لذلك ، في الملف الرئيسي للمكوِّن الإضافي ، أضف الوظيفة التالية:

function ksu_save_role( $user_id, $role ) {

	// Site 1
	// Change value if needed
	$prefix_1 = 'first_';
	
	// Site 2 prefix
	// Change value if needed
	$prefix_2 = 'second_';
	
	$caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );
	$level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );

	if ( $caps ){
		update_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );
	}

	if ( $level ){
		update_user_meta( $user_id, $prefix_2 . 'user_level', $level );
	}
}

add_action( 'set_user_role', 'ksu_save_role', 10, 2 );

تحتفظ وظيفة رد الاتصال بثلاث وسيطات ، اثنان منها مطلوبان: $user_idو $role.

ما تفعله الوظيفة هو واضح تماما. إرجاع get_user_meta قيمة حقل تعريف المستخدم المحدد. لقد استدعاء هذه الدالة مرتين لاسترداد first_capabilitiesو first_user_levelالمجالات. ثم استخدمنا هذه القيم لإضافة second_capabilitiesو second_user_levelالحقول إلى first_usermetaالجدول.

تحميل إعلان تفعيل هذا البرنامج المساعد في الموقع الأول.

لجعل عمليات التثبيت تعمل بشكل متماثل ، نحتاج فقط إلى تحميل وتنشيط المكون الإضافي في أي تثبيت ، ولكن مع تعيين القيم الصحيحة للبادئات. على سبيل المثال ، إذا قمنا بتنشيط هذه الميزة في موقع الويب الثاني ، فعلينا فقط إعلان المتغيرات على النحو التالي:

$prefix_1 = 'second_';
$prefix_2 = 'first_';

لذلك ، قم بتحرير المكون الإضافي وتثبيته في موقع الويب الثاني وإنشاء مستخدم جديد أو تغيير دور المستخدم الحالي. ثم تحقق من الموقع الأول. ستكون أدوار المستخدم مماثلة تمامًا لموقع الويب الثاني.

ملخص

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

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

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

الكود الكامل للمكوِّن الإضافي متاح في هذا Gist العام

وفر الوقت والتكاليف وحقق أقصى قدر من أداء الموقع من خلال:

مساعدة فورية من خبراء استضافة وورد بريس ، 24/7.

تكامل Cloudflare Enterprise.

يصل الجمهور العالمي إلى 28 مركز بيانات حول العالم.

التحسين من خلال مراقبة أداء التطبيقات المضمنة لدينا.

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

توضيح

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

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

أرسل تصحيح

شاركنا رايك وتقييمك للموضوع

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}