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.
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.