

Wordpress Farklı Domainlerde Aynı "Users" Tablosu Nasıl Kullanılır ?
-
Hocalar 3-4 farklı domaine wordpress kurup bunların hepsinde tek bir "users" tablosunu nasıl kullanabilirim ? Bir network gibi olacak kullanıcılar networkteki herhangi bir siteden üye olduğunda tüm domainlere o kullanıcı adı ile giriş yapabilecek
-
Çizik lazım olabilir.
-
Dostum bunun için biraz uğraşman gerekir. Şöyle bir çözüm uygulayabilirsin. Öncelikle wordpress kuracağın sitelere ayrı bir veritabanı bağlantısı oluşturmalısın. Örnek olarak
wp-config.php içerisine şunları ekle
define('UZAK_DB_USER', 'username'); define('UZAK_DB_PASSWORD', 'password'); define('UZAK_DB_NAME', 'uzak_data' ); define('UZAK_DB_HOST', '134.234.211.222:3307'); //ip adresi ve port $uzak_db = new wpdb(UZAK_DB_USER, UZAK_DB_PASSWORD, UZAK_DB_NAME, UZAK_DB_HOST); $uzak_db->show_errors(); /*Burada alternatif veritabaın bağlantısı kurmuş olduk. Şimdi wordpress komutları ile yapmış oluğumuz her şeyi yapabilirizŞimdi de kullanıcının kayıt olacağı sırada çalıştıracağımız kancayı oluşturuyoruz. Bu kanca user_register dir. Örnek kullanım
add_action('user_register', 'kullanici_kayit'); function kullanici_kayit($user_id) { if ( isset( $_POST['first_name'] ) ){ global $uzak_db; $table_name = $uzak_db->prefix . "users"; $user_registered=$_['$user_registered']; $user_registered = gmdate('Y-m-d H:i:s'); //burada kullanıcıyı diğer sitemize de kaydediyoruz. $uzak_db->insert( $table_name, array( 'ID' => $user_id, 'user_login' => $_POST['user_login'],'user_pass'=> $_POST['user_pass'],'user_nicename'=>$_POST['user_nicename'],'user_email'=>$_POST['user_email'],'user_email'=>$_POST['user_email'],'user_registered'=>$user_registered) ); }Böylelikle siteye yeni kayıt olan birini uzak veritabanına da eklersin. Daha sonra kullanıcı siteye giriş yapmak istediğinde diğer sitelere kaydı var mı diye sorgulatmamız gerek bunu da wp-login kancası ile yaparız. Aşağıda fonksiyonun kullanımı
<?php function your_function($user_login, $user) { //buraya kulalnıcı siteye giriş yapmak istediğinde çalışmasını istediğimiz kodları yazıyoruz.
} add_action('wp_login', 'your_function', 10, 2); ?>
Dostum şu anda biraz işim olduğu için kodları üstünkörü yazdım. Mantığı bu şekilde olabilir. Boş zamanım olursa kodların çalışan versiyonunu yazarım. Hadi kolay gelsin. -
çizik
-
shock56 bunu yazdı
Dostum bunun için biraz uğraşman gerekir. Şöyle bir çözüm uygulayabilirsin. Öncelikle wordpress kuracağın sitelere ayrı bir veritabanı bağlantısı oluşturmalısın. Örnek olarak
wp-config.php içerisine şunları ekle
define('UZAK_DB_USER', 'username'); define('UZAK_DB_PASSWORD', 'password'); define('UZAK_DB_NAME', 'uzak_data' ); define('UZAK_DB_HOST', '134.234.211.222:3307'); //ip adresi ve port $uzak_db = new wpdb(UZAK_DB_USER, UZAK_DB_PASSWORD, UZAK_DB_NAME, UZAK_DB_HOST); $uzak_db->show_errors(); /*Burada alternatif veritabaın bağlantısı kurmuş olduk. Şimdi wordpress komutları ile yapmış oluğumuz her şeyi yapabilirizŞimdi de kullanıcının kayıt olacağı sırada çalıştıracağımız kancayı oluşturuyoruz. Bu kanca user_register dir. Örnek kullanım
add_action('user_register', 'kullanici_kayit'); function kullanici_kayit($user_id) { if ( isset( $_POST['first_name'] ) ){ global $uzak_db; $table_name = $uzak_db->prefix . "users"; $user_registered=$_['$user_registered']; $user_registered = gmdate('Y-m-d H:i:s'); //burada kullanıcıyı diğer sitemize de kaydediyoruz. $uzak_db->insert( $table_name, array( 'ID' => $user_id, 'user_login' => $_POST['user_login'],'user_pass'=> $_POST['user_pass'],'user_nicename'=>$_POST['user_nicename'],'user_email'=>$_POST['user_email'],'user_email'=>$_POST['user_email'],'user_registered'=>$user_registered) ); }Böylelikle siteye yeni kayıt olan birini uzak veritabanına da eklersin. Daha sonra kullanıcı siteye giriş yapmak istediğinde diğer sitelere kaydı var mı diye sorgulatmamız gerek bunu da wp-login kancası ile yaparız. Aşağıda fonksiyonun kullanımı
} add_action('wp_login', 'your_function', 10, 2); ?>
Dostum şu anda biraz işim olduğu için kodları üstünkörü yazdım. Mantığı bu şekilde olabilir. Boş zamanım olursa kodların çalışan versiyonunu yazarım. Hadi kolay gelsin.hocam boş zamanının olmasını bekliyorum, başlığı unutma : )
-
gerek yok o kadar kasmaya user tablosunu kullanmak için bu kodu wp-config.php ye ekle. Ancak diğer domainleride aynı dbye kurman gerekir ancak her kurduğun site için db bilgilerini yazarken prefixini değiştirmelisin...
define('CUSTOM_USER_TABLE', 'wp_users'); define('CUSTOM_USER_META_TABLE', 'wp_usermeta');sRcN tarafından 20/Nis/13 18:44 tarihinde düzenlenmiştir -
sRcN bunu yazdı
gerek yok o kadar kasmaya user tablosunu kullanmak için bu kodu wp-config.php ye ekle. Ancak diğer domainleride aynı dbye kurman gerekir ancak her kurduğun site için db bilgilerini yazarken prefixini değiştirmelisin...
define('CUSTOM_USER_TABLE', 'wp_users'); define('CUSTOM_USER_META_TABLE', 'wp_usermeta');Evet sRcN arkaşın söylediği yöntem çok daha makul ve mantıklı. Ben gece kod yazarken fazla abartmışım :)