WordPress functions.php Üzerinden Kullanıcı Yönetimi

Bu yazıyı yayına hazırladığım esnada WordPress 4.8 48,461,857 kez indirilmiş durumdaydı1.

AA

Son yapılan araştırmalara göre2 pazar payı %28.8 civarında3. Müthiş bir rakam, değil mi? Neredeyse herkesin üzerine fikir sahibi olduğu, web ile ilgili bir fikrin hayata geçirilmesinde kimi zaman destekçisi olarak konumlanan, kimi zaman ise fikrin merkezinde yer alan bir yapı sunmasının da ötesinde bir çok geliştirici ve tasarımcı için de bir kazanç alanı. Günlük süreç içerisinde sıklıkla karşılaştığım problemlerden birinden bahsedeceğim; kullanıcı şifresini unutmak/bilmemek.

WordPress Kullanıcı/Yönetici Oluşturma

Evet, oldukça basit ve kimi zaman da komik karşılanabilecek bir durum. Ancak, bir kişi ya da ajansın müşterisi için gerçekleştirdiği kurulumlarda çoğunlukla içerikler de kurulumu yapan kişi tarafından giriliyor. Bu tür durumlarda süreci hızlı yürütmek adına müşteri hesapları yerine kullanılan hesaplar ve kurulum sonrasında geçen süreyle birlikte iletişimlerde aksamalar ve kesilmeler söz konusu olabiliyor. İşte bu noktada e-posta hesabına erişemediğiniz ya da müşteriden beklediğiniz desteği alamadığınızda ne yapacaksınız?

Elinizde sadece değerlendirebileceğiniz ftp opsiyonu söz konusu (WP-CLI üzerinden yapılabilecek işlemlerle ilgili ayrıca bir yazı yayınlayacağım). Bu durumda wp-config.php içerisinden mysql bilgilerini okuyabilir ve erişim sağlayabilirsiniz. Bana göre mysql erişimi ve tekrar MD5 şifre üretmekten çok daha pratik bir çözüm. phpMyAdmin erişimi veya doğrudan MySQL sorguları gerçekleştirememe ihtimalleri de söz konusu elbette. Bu şansız sürece dair alternatif bir çözümden bahsetmek istiyorum. function.php üzerinden şifre, e-posta ve kullanıcı adı tanımlayarak admin hesabı oluşturmak.

Evet, yapmanız gereken aktif tema içeriğinde yer alan functions.php dökümanını açmak ve aşağıdaki create_admin_account fonksiyonunu ekleyip sayfayı kaydetmek.

function create_admin_account(){
$user = 'kullaniciadi';
$pass = 'sifre';
$email = 'email@domain.com';
  if ( !username_exists( $user )  && !email_exists( $email ) ) {
    } else {
    echo 'Kullanıcı tanımlı! Bilgileri değiştirerek tekrar deneyiniz.';
  }
}
add_action('init','create_admin_account');

Fonksiyon belirttiğiniz kullanıcı adı (user_login) ve şifre (user_pass) ile wp_users tablosunda bir admin satırı eklemekte. Doğrudan e-posta hesabını (user_email) da eklediğiniz fonksiyonda isterseniz farklı düzenlemeler de yapmanız mümkün. Örneğin şifre alanı için şu satırı kullanabiliriz:

wp_generate_password( $length=12, $include_standard_special_chars=false );

İşlem sonunda muhtemel olarak bazı geri bildirimler alabilirsiniz:

  • empty_user_login, kullanıcı adı tanımlanmamış
  • existing_user_login, kayıtlı olan kullanıcı
  • existing_user_email, kayıtlı olan bir e-posta adresi

Diğer yandan wp_insert_user ile de kullanıcı tanımlayabilir, wp_update_user ile şifre belirleme de dahil bilgi güncelleme işlemleri gerçekleştirebilirsiniz. function.php çalıştığında doğrudan hesap veritabanında ilgili satıra eklenecektir. Ardından belirttiğiniz bilgileri kullanarak wp-admin erişimi sağlayabilirsiniz.