R10.NET Uygulamaları
Kullanıcılar
Yükleniyor, lütfen bekleyiniz..

    WordPress Eklentisiz Login Sayfası Yapımı ve WP-Login Sayfasını Kapatma

    WordPress özel login sayfası saldırılardan ve botlardan sitenizi uzak durabilirsiniz. Eklentisiz olarak kendi temanız üzerinde birkaç düzenleme yaparak Login sayfanızı nasıl değiştireceğinizi içeriğimizden öğrenebilirsiniz.

    bilimokur
    bilimokur R10 Editörü
    14.04.2022 15:00 1605 3 dk okuma süresi
    WordPress Eklentisiz Login Sayfası Yapımı ve WP-Login Sayfasını Kapatma
    Son Düzenleme:

    WordPress'te brute force saldırıları genellikle wp-login.php yani giriş sayfası üzerinden yapılır. Bu sayfayı komple kapatarak saldırılardan bir nebze kurtulabilirsiniz. Fakat normal kullanıcıların siteye girebilmesi için de özel bir login sayfasına ihtiyacımız var.

    WordPress wp-login.php Nasıl Kapatılır?

    Basit kodlamalarla yapabileceğimiz bu işlem için sayısız eklenti mevcut. Fakat hiçbirine ihtiyacımız yok. Çünkü çok basit!

    Bu işlem için kullanacağımız fonksiyonlar şunlar:

    is_user_logged_in() Ziyaretçilerin siteye giriş yapıp yapmadıklarını sorgular. Bunu kullanacağız çünkü, eğer kullanıcı giriş yapmışsa ve site.com/wp-login.php linkine giderse varsayılan olarak wp-admin dizinine yönlendirilir. O yüzden bu yönlendirmeye müdahale etmememiz gerekiyor. Yani engelleme işlemini giriş yapan ziyaretçilere uygulamayacağız.

    wp_redirect() wp-login.php sayfasını farklı bir sayfaya yönlendirmek için kullanacağız.

    home_url() Yönlendirme yapabilmek için ana sayfanın linkini almamız gerekiyor. Böylelikle login sayfasını ana sayfaya yönlendirebileceğiz.

    Şimdi temanızın ana dizinindeki functions.php dosyasını açarak aşağıdaki kodu en alta ekleyin.

    add_action(
    	'init',
    	function () {
    		global $pagenow;
    
    		if ( 'wp-login.php' === $pagenow && ! is_user_logged_in() ) {
    			wp_redirect( home_url() );
    			exit();
    		}
    	}
    );

    İşlem bu kadar. Artık wp-login.php sayfasını kaldırmış olduk. Sitenizden çıkış yaparak site.com/wp-login.php adresine girip test edebilirsiniz. Şimdi özel bir giriş sayfası yapmamız gerekiyor. Aksi halde siteye kendimiz de giriş yapamayız.

    WordPress Özel Login Sayfası Nasıl Oluşturulur?

    Öncelikle login (giriş) formunu göstereceğimiz bir kısakod oluşturalım.

    Kullanacağımız fonksiyonlar:

    wp_get_current_user() Giriş yapmış olan kullanıcının bilgilerini getirir.

    wp_logout_url() Çıkış yapmak için gereken linki getirir.

    get_the_permalink() Bulunduğumuz sayfanın linkini getirir.

    wp_nonce_fıeld() Günveliğimiz için özel bir anahtar oluşturur. Böylelikle dışardan post denemesi yapıldığında arka planda herhangi bir işlem yapılmaz.

    Şimdi temanızın ana dizinindeki functions.php dosyasını açarak aşağıdaki kodu en alta ekleyin.

    	add_shortcode(
    	'r10_login',
    	function () {
    		ob_start();
     
    		// Kullanıcı giriş yapmamışsa login formunu göster.
    		if ( ! is_user_logged_in() ) :
    			?>
    			
    				
    					Kullanıcı Adı veya E-posta
    				
    				
    					Şifre
    				
    				
    					
    				
    				
    			
    		Merhaba ' . $current_user->display_name . ' Çıkış Yap?';
    		endif;
     
    		return ob_get_clean();
    	}
    );

    Bu kodu ekledikten sonra artık herhangi bir sayfaya [r10_login] kısakodunu ekleyerek giriş formunu gösterebiliriz. Kodu yerleştirdiğiniz sayfa sizin yeni login sayfanız olacak. Görünüm şu şekilde:

    Şimdi formdan gelen bilgileri kullanarak giriş yapalım.

    Kullanacağımız fonksiyonlar:

    wp_verify_nonce() Yukarıda bahsettiğimiz wp_nonce_field() ile oluşturulan anahtarı doğrulamak için kullanacağız.

    sanitize_text_field() $_POST tan gelen verileri zararlı XSS kodlarından arındırıyoruz. Yani sanitize (dezenfekte) ediyoruz.

    wp_signon() Bu fonksiyonla siteye giriş yaptıracağız.

    is_ssl() Wordpress sitede SSL olup olmadığını kontrol edeceğiz. Böylelikle güvenli giriş yaptırabiliriz. wp_signon() içerisinde kullanacağız.

    is_wp_error() wp_signon() fonksiyonu eğer hata döndürürse yani giriş başarısız olursa bu fonksiyonla kontrol edeceğiz.

    Formdan gelen verileri yakalayabilmek için temanızın ana dizinindeki functions.php dosyasını açarak aşağıdaki kodu en alta ekleyin.

    add_action(
    	'init',
    	function () {
    		if (
    			isset( $_POST['username'] ) &&
    			isset( $_POST['password'] ) &&
    			wp_verify_nonce( $_POST['r10_login'], 'r10_login' )
    		) {
    			// $_POST tan gelen veriden kullanıcı adını aldık.
    			$username = sanitize_text_field( $_POST['username'] );
    			// $_POST tan gelen veriden şifreyi aldık.
    			$password = sanitize_text_field( $_POST['password'] );
    
    			if ( ! empty( $username ) && ! empty( $password ) ) {
    				$res = wp_signon(
    					array(
    						'user_login'    => $username,
    						'user_password' => $password,
    					),
    					is_ssl() // Sitemizde SSL varsa güvenli giriş yapacağız.
    				);
    
    				// Eğer hata varsa ekrana bastıralım. Şifre yanlış vb. hatalar.
    				if ( is_wp_error( $res ) ) {
    					echo '' . $res->get_error_message() . '';
    				} else {
    					// Giriş başarılı ise ana sayfaya yönlendiriyoruz.
    					wp_redirect( home_url() );
    					exit();
    				}
    			} else {
    				echo 'Lütfen bütün bilgileri doldurun!';
    			}
    		}
    	}
    );

    İşlem bu kadar. Artık kendi özel formunuzu kullanarak sitenize giriş yapabilirsiniz.

    İçeriği Puanla
    Yorumlar

    Yorumunuz minimum 10 karakter olmalıdır.

    Tüm Yorumlar
    Toplam 1 Yorum
    • Can
      Can 2 yıl önce
      Tebrikler 👏

    İlgili İçerikler:

    Huawei Watch GT 5 Pro Tanıtım Öncesi Görüntülendi: İşte Özellikler ve Detaylar!

    Huawei Watch GT 5 Pro, safir cam, titanyum gövde, 100'den fazla spor modu ve uzun pil ömrü ile tanıtılıyor. Lansman 24 Eylül'de gerçekleşecek.

    Kayışlı ve Otomatik Vitesli Elektrikli Bisiklet Vvolt Centauri II Tanıtıldı!

    Vvolt Centauri II, otomatik vites, karbon kayış ve 97 km menzil sunan elektrikli bisiklet. Konforlu sürüş ve güçlü performansıyla 2.999 dolardan satışta.

    Xiaomi 15 ve 15 Pro'nun Fiyatı Açıklandı!

    Xiaomi 15 ve 15 Pro'nun fiyatları açıklandı. Artan yonga seti maliyetleri nedeniyle fiyatlar yükselirken gelişmiş kamera ve ekran özellikleri dikkat çekiyor.

    AMD Adrenalin 24.20.11.01 Sürücüsü Yayınlandı: İşte Yenilikler ve İyileştirmeler!

    AMD Adrenalin 24.20.11.01 sürücüsü yayınlandı. İşte yeni oyunlara destek ve performans iyileştirmeleriyle birlikte birçok sorunu gideren güncellemenin detayları!

    WordPress Eklentisiz Login Sayfası Yapımı ve WP-Login Sayfasını Kapatma

    Size daha iyi hizmet sunabilmek
    için çerezleri kullanıyoruz.

    Çerez Politikası Kabul Et