چند سایت با یک حساب کاربری


(dcivil) #1

سلام
ببخشید من چندین سایت مجزا دارم
می خوام وقتی کاربر در یکیش عضو شد در همشون عضو بشه
مثلا سایت پیکوفایل و نمایش در یکیش عضو میشی با همون کد کاربری و رمز در دیگر سایت هم عضو میشی
ایا راهی هست ؟
افزونه ای؟


(حسین) #3

در وردپرس های مجزا و جدا از هم (به صورتی که دو وردپرس نصب شده اند) نیز می توانیم چنین امکانی داشته باشیم اما این مورد شرایطی نیاز دارد:

  1. اولا دو یا چند وردپرس روی یک دیتابیس نصب شده باشند
  2. دوما نسخه وردپرس ها باید کاملا مشابه هم باشند (برای مثال تمامی آنها از 5.0.1 استفاده کنند). دلیل استفاده مشابه از یک نسخه این است که احتمال متفاوت بودن جداول و دستورات دیتابیس در نسخه های متفاوت وجود دارد.

1 . نصب وردپرس ها روی یک دیتابیس

انجام اینکار بسیار آسان است . برای اینکار، می توانید چندین ساب دامین ایجاد کنید، وردپرس ها را به صورت جداگانه در هر سابدامین آپلود کنید. اما مهم ترین شروط برای انجام اینکار به این ترتیب است:

  1. در مراحل نصب وردپرس ها، دقیقا اطلاعات یک دیتابیس وارد شود.
  2. پیشوند جدول دیتابیس در مراحل نصب با مابقی وردپرس ها متفاوت باشد.

در حالت عادی، زمانی که وارد مرحله نصب وردپرس می شوید، پیشوند جداول وردپرس به صورت wp_ در نظر گرفته می شود. اگر قصد دارید چند وردپرس را روی یک دیتابیس نصب کنید، این پیشوندها باید متفاوت باشند. برای مثال در نصب وردپرس دوم، پیشوند جدول دیتابیس را wps_ و یا وردپرس سوم wpt_ یا از هر پیشوند دلخواه دیگری مانند new_ یا iranwp_ و … می توانید استفاده کنید.

تنها هدف اینکار ، جدا شدن و جلوگیری از ترکیب شدن جداول دیتابیس وردپرس هاست .

2 . معرفی جدول اطلاعات کاربران به وردپرس های دوم به بعد

پس از نصب وردپرس ها، فایل wp-config.php مربوط به وردپرس دوم را باز کنید. پیش از خط /* That’s all, stop editing! Happy blogging. */ کد زیر را قرار دهید:

define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USERMETA_TABLE', 'wp_usermeta');

نکته ضروری:

در دو خط بالا، عبارات wp_users و wp_usersmeta را مشاهده می کنید. در این کد فرض شده که پیشوند جدول های دیتابیس در وردپرس اول wp_ است. حال اگر پیشوند جداول دیتابیس وردپرس اول شما چیز دیگری است حتما باید آن را در کد بالا وارد نمایید. در واقع با این کدها قصد داریم اطلاعات کاربران را از سایت اصلی دریافت کنیم.

3 . جلوگیری از تداخلات کوکی و کش مرورگر

با انجام مرحله قبل، اطلاعات کاربران بین وردپرس اول و وردپرس دوم به اشتراک گذاشته خواهد شد و اگر کاربری در سایت اصلی شما عضو شده باشد، در وردپرس دوم شما که به صورت ساب دامین نصب شده نیز با همان اطلاعات خواهد توانست وارد حساب کاربری خود شود.

اما اتصال یک جدول به دو وردپرس ممکن است مشکلات کش و کوکی مرورگر به همراه داشته باشد، پس فایل wp-config.php وردپرس دوم را مجددا باز کنید و کد پایین را زیر کد مرحله قبل قرار دهید:

define('COOKIE_DOMAIN', '.yoursite.com');
define('COOKIEPATH', '/');

تنظیمات:

  • در خط اول بجای yoursite.com دامنه اصلی سایتتان را وارد کنید. از وارد کردن سابدامین خودداری کنید! تنها آدرس سایت وردپرس اول را وارد نمایید.
  • در خط اول ، نقطه ی قبل از آدرس سایت را حذف نکنید !

پس همانطور که مشاهده کردید، تمامی تغییرات ما روی وردپرس دوم بود. هم اکنون کاربران شما خواهند توانست به راحتی بین سابدامین های شما گشت و گذار کنند و نیازی به ثبت نام مجدد برای هر کدام نخواهند داشت.


(dcivil) #5

اگر روی دوتا هاست جدا باشه چطور ؟ امکان داره؟
یا باید روی یک هاست باشه؟
اگر از وردپرس شبکه ای استفاده کنم هم میشه؟ اگر بله لطفا اون رو هم توضیح بده
یک دنیا ممنون


(dcivil) #6

@Hosein عزیز مرسی از پاسخ گویید چندتا سوال دیگه هم داشتم
1- من برای نصب سایت ها از افزونه Duplicator استفاده میکنم. در این افزونه چطور از پشوند های مختلف استفاده کنم برای جداول دیتابیس چون وقتی اطلاعات دیتابیس بهش میدی دیتابیس رو کلا پاک میکنه و مال خودش رو میریزه
2- امکانش نیست 2 تا دیتابیس متفاوت داشته باشیم که فقط جدول کاربراش یکی باشه؟
3- اگر بخوام روی دوتا هاست مختلف از این قابلیت استفاده کنم امکان پذیر هستش؟ چون وقتی رو سای دامین میارم سرعت سایت هام به شددت افت پیدا میکنه


(حسین) #7

سلام خدمت شما
برای مورد شماره یک از لینک زیر استفاده کنید

اما موارد دیگری را که پرسیدید بررسی نکردم و اطلاعی نیز در این مورد ندارم

احتمالا دوستان بتونند در این مورد راهنمایی بفرمایند