PHP'de Otomatik WordPress Yönetici Girişi


Bugünün gönderisi, WordPress sitenize küçük, düzgün bir özelliği nasıl yükleyeceğinizi göstereceğim kısa bir gönderi olacak. Bu, güvenli bir şekilde kullanılırsa çok uygun olabilir. Bu, kullanıcıların oturum açması için genel bir hesap sunan WordPress sitelerinde kullanılmak üzere tasarlanmıştır. Örneğin, birçok arka uç WordPress demosunda yazar, potansiyel müşterilerin giriş yapması ve ürünüyle oynaması için bir 'demo' hesabı oluşturacaktır. Çoğu zaman, yazar basitçe şunu söyleyen bir uyarı görüntüler;

KULLANICI ADI: demo
ŞİFRE: demo

Bu biraz yaya. Elbette demoyu biraz daha akıcı ve profesyonel gösterebilir miyiz? Bu kimlik bilgileriyle WordPress yöneticisine otomatik olarak giriş yapmanız için size hızlı bir pasaj vereceğim. Bu, temanızın işlevler dosyasına bırakılabilir veya kendi eklenti dosyasına yerleştirilebilir ve etkinleştirilebilir.

Bu yararlı olabilir;

  • Sitenizin, anonim kullanıcıların giriş yapabileceği genel bir hesabı var.
  • Bir 'tek tıklama' giriş bağlantısı istiyorsunuz.
  • Demoya hızlı ve verimli bir yol sağlayarak, gerekli adımları en aza indirerek ürün demo dönüşümünü en üst düzeye çıkarmak istiyorsunuz.
  • Ziyaretçileri doğrudan ilgili konuma yönlendirmek istiyorsunuz (örn. Ayarlar sayfası).

ÖNEMLİ : Bunu asla gerçek güce sahip hesaplara giriş yapmak için kullanmayın; Örneğin. Yönetici/Editör hesapları vb.
Bu snippet'i dikkatli kullanın.

Tamam, diğer derslerimde yaptığım gibi, önce size tam ve açıklamalı kodu vereceğim, böylece okuma hayranı olmayanlarınız doğrudan denemeye başlayabilir. Aşağıdaki snippet, bağımsız bir eklenti biçiminde tasarlanmıştır (kişisel tercihim).

Github'da Harri Bell-Thomas

 /* Plugin Name: Auto Login Plugin URI: http://hbt.io/ Version: 1.0.0 Author: Harri Bell-Thomas Author URI: http://hbt.io/ */ function autologin() { // PARAMETER TO CHECK FOR if ($_GET['autologin'] == 'demo') { // ACCOUNT USERNAME TO LOGIN TO $creds['user_login'] = 'demo'; // ACCOUNT PASSWORD TO USE $creds['user_password'] = 'demo'; $creds['remember'] = true; $autologin_user = wp_signon( $creds, false ); if ( !is_wp_error($autologin_user) ) header('Location: wp-admin'); // LOCATION TO REDIRECT TO } } // ADD CODE JUST BEFORE HEADERS AND COOKIES ARE SENT add_action( 'after_setup_theme', 'autologin' );

KULLANIM

Bu kullanımı çok basittir. Hesap kullanıcı adı ve şifresi eklenti dosyasında (yukarıdaki kod) belirtilmiştir ve giriş yapmak için ziyaret etmeniz yeterlidir; http://example.com/wp-login.php?autologin=demo

Hemen wp-admin'e yönlendirilmeli, belirtilen hesaba giriş yapmalısınız. Kimlik bilgileri yanlışsa, oturum açma formunu normal şekilde görmelisiniz.

ÖZELLEŞTİRME

Bu snippet'in özelleştirilmesi çok kolaydır. Esasen düzenlemeniz gereken sadece 3 şey var ve tüm bu değişiklikler aşağıdaki kod bloğunda yapılacak (tam kodun 11 ila 17. satırları)

 if ($_GET['login'] == 'dummy_account') { // ACCOUNT USERNAME TO LOGIN TO $creds['user_login'] = 'dummy'; // ACCOUNT PASSWORD TO USE $creds['user_password'] = 'pa55word';

İlk satırda URL parametresinin koşullu kontrolünü göreceksiniz. Yukarıdaki kod bloğu şunları kontrol edecek; wp-login.php?login=dummy_account

Bu değerler istediğiniz gibi olabilir, ancak 'logdout', 'action' ve 'redirect_to' gibi orijinal WordPress parametrelerinden kaçınmaya dikkat edin. 4. satır, oturum açmak için kullanıcı adını belirttiğiniz yerdir; özelleştirilmiş kod parçacığı 'sahte' hesaba giriş yapmayı deneyecek. Tahmin edebileceğiniz gibi, 7. satır parolayı belirttiğiniz yerdir. Yukarıdaki şifre 'pa55word'. Bu değerleri doldurun ve gitmeniz iyi olur!


UZANTILAR

Şu anda snippet'imiz yalnızca bir hesaba otomatik olarak giriş yapmak için ayarlanmıştır. Farklı hesaplar için farklı giriş bağlantıları istiyorsak ne olur? Bunu yapmak oldukça hızlı ve kolaydır ve tüm pasajı tekrar tekrar tekrarlamanızı gerektirmez. Çözümüme aşağıda bir göz atın.

 /* Plugin Name: Auto Login Plugin URI: http://hbt.io/ Description: Create convenient auto-login links to quickly login to generic accounts. Configure source code to make changes. Version: 1.0.0 Author: Harri Bell-Thomas Author URI: http://hbt.io/ */ // Declare global var's global $login_parameter, $accounts; // THE PARAMETER TO CHECK FOR // eg. http://exmaple.com/wp-login.php?param_name=account $login_parameter = "autologin"; // ACCOUNT CODE BLOCK $accounts[] = array( "user" => "demo", "pass" => "demo", "location" => "wp-admin", ); // END ACCOUNT CODE BLOCK // EDIT AND REPEAT CODE BLOCK FOR AS MANY ACCOUNTS AS NEEDED // Another example iteration $accounts[] = array( "user" => "tcwp", "pass" => "demo", "location" => "wp-admin/?tcwp-sent-me", ); // SEE PREVIOUS EXAMPLE FOR DETAILS ABOUT THIS FUNCTION function autologin() { global $login_parameter, $accounts; foreach ($accounts as $account) { if ($_GET[$login_parameter] == $account['user']) { $creds['user_login'] = $account['user']; $creds['user_password'] = $account['pass']; $creds['remember'] = true; $autologin_user = wp_signon( $creds, false ); if ( !is_wp_error($autologin_user) ) header('Location: ' . $account['location']); } } } add_action( 'after_setup_theme', 'autologin' );

Özünde bu temelde aynıdır, ancak arsız bir foreach döngüsü artı hesaplar dizisi de atılır. autologin() işlevinin anatomisi, kodunun her hesap için tekrarlanması (foreach döngüsü kullanılarak) dışında aynıdır. İlgili tüm ayrıntılar artık global dizide saklanmaktadır. Yukarıdaki örnek 2 hesap için ayarlanmıştır, ancak snippet'imiz ihtiyaç duyduğumuz kadarını barındırabilir. Ek hesaplar eklemek için aşağıdaki kod bloklarından istediğiniz kadarını özelleştirmeniz ve eklemeniz yeterlidir.

 // ACCOUNT CODE BLOCK $accounts[] = array( "user" => "anotheraccount", "pass" => "public_password", "location" => "http://YouCanPutURLsHereToo.com/", ); // END ACCOUNT CODE BLOCK

Ayrıca, parametre adını global bir değişkene de taşıdığımı fark edeceksiniz: bu gerekli değil, ancak bunu basitçe autologin() işlevinden tüm sabit kodlanmış değerleri kaldırmak için yaptım.

ÇÖZÜM

Bu snippet, yalnızca bir ürün demo sitesinde olduğu gibi hafif kullanım için tasarlanmış basit bir işlevdir, ancak çok daha karmaşık oturum açma senaryoları için kullanılma potansiyeline sahiptir. Kodun geri kalanı oldukça açıklayıcı olmalı, ancak ne yaptığım veya neden yaptığım hakkında herhangi bir sorunuz varsa, aşağıya bir yorum bırakın veya bana tweet atın. Herhangi bir geri bildiriminiz / öneriniz / fikriniz varsa, aşağıdaki yorum bölümünde bir yorum bırakın!

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

Divi's Theme Builder ile Özel Global Başlık Nasıl Oluşturulur

Artık Tema Oluşturucu burada olduğuna göre, web sitenizi A'dan Z'ye kurmanıza yardımcı olacak yeni eğitimlere dalmak için sabırsızlanıyoruz. Buna Divi'nin yerleşik seçeneğini kullanarak özel başlıklar oluşturma da dahildir. Bu eğitimde Divi's Theme Builder'ı kullanarak global bir başlık oluşturmaya odaklanacağız. Bu sayfaya veya gönderiye farklı bir başlık atamadıysanız, web sitenizin her yerinde genel bir başlık görünecektir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir