Kullanıcı adını (user_login) programlı olarak nasıl değiştirebilirim?


15

Başlıkta olduğu gibi, kullanıcının girişini programlı olarak nasıl değiştirebilirim?

wp_insert_userFonksiyonu kullanmak istedim , ancak mevcut kullanıcıyı güncellerken kullanıcı adlarını değiştirmediği anlaşılıyor. Bunun $wpdb->updateiçin kullanmalı mıyım ? Evetse, kullanıcı adını değiştirmek için kod nasıl görünür? WordPress API'sinin kullanıcı adlarının değiştirilmesine izin vermediği göz önüne alındığında, kullanıcı oturumunun değiştirilmesinin sonuçları neler olurdu?

Yanıtlar:


21

wp_update_userFonksiyonun bunu yapması gerektiğinden emindim ( http://codex.wordpress.org/Function_Reference/wp_update_user ).

User_login parametresini param olarak alır, ancak bu param ayarladığınızda bunu görmezden gelir.

Yani bu kod iyi görünüyor, ama istediğiniz gibi çalışmıyor :(:

wp_update_user( array ( 'ID' => $user_id, 'user_login' => $new_login ) ) ;

User_login dosyasını güncellemek için özel SQL sorgusu çağırmanız gerekir:

$wpdb->update($wpdb->users, array('user_login' => $new_user_login), array('ID' => $user_id));

Tamam çalışıyor ve ciddi sonuçları olduğunu düşünmüyorum, çünkü WP kullanıcıya mesajlar / yorumlar (vb.) Atamak için kullanıcı kimliğini kullanıyor.

Düşünebildiğim tek sorun, bu kullanıcı şu anda oturum açtığında, user_login değişikliğinden sonra oturumu kapatmasıdır.


2
Gerçekten değil, bu işlevin notlarını (kodun yanı sıra) kontrol edin: Bu işlevle kullanıcı adlarını değiştiremeyeceğimizi lütfen unutmayın, aslında WordPress kullanıcı adlarının izin vermediği için kullanıcı adları yönetici kontrol panelinden de değiştirilemez. güncellenecek.
Mateusz Hajdziony

Teşekkürler, harika çalışıyor! Oturum açmış kullanıcılar için endişelenmenize gerek yok, çünkü yalnızca çıkış yapmış kullanıcılar için kullanıcı adı değişikliğine izin verdim (e-posta yoluyla hesap aktivasyonu).
Mateusz Hajdziony

@ pogoking Göz önünde bulundurmak isteyebileceğiniz şeylerden biri, oldukça kalıcı bağlantılar etkinleştirilmişse kullanıcıların kullanıcı adlarını değiştirmelerini sağladıktan sonra kullanıcı veya yazar kalıcı bağlantılarının bozulabileceğidir, bu nedenle bunu telafi etmek için önlemler almanız gerekebilir.
Ahmad M

1
i küresel $ wpdb eklemek gerekiyordu; nasıl çalışır
Mau

4
Eski yazı, ama bunu kendim yapıyorum, giriş formu olarak sitenizde kayıtlı aynı user_login ile başka bir kullanıcı olmadığını kontrol etmeye değer olurdu Açıkçası hesapları bulmak ve şifre karmaları maç için bu değeri kullanır
haxxxton

4

SQL sorgusu yoluyla da user_nicename öğesini değiştirmeyi düşünebilirsiniz. Bu yapıldıktan sonra, tüm kalıcı bağlantılar ve diğer işlevler mükemmel çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.