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 14.04.2022 15:00 396 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 7 ay önce
      Tebrikler 👏

    İlgili İçerikler:

    2022’nin En İyi App Store Uygulama ve Oyunları Belli Oldu!

    App Store'da 2022 yılının en iyilerini Apple CEO'su Tim Cook açıkladı. İşte Apple tarafından açıklanan 2022'nin App Store en iyi uygulama ve oyunları!

    Elon Musk’tan iPhone ve Android'e Gözdağı! Kendi Telefonunu Üreterek Dev Şirketleri Zora Mı Sokacak?

    Twitter'ın App Store ve Google Play’den kaldırılması dedikoduları Musk’ı sinirlendirdi. Musk, bu dedikoduları kendi telefonunu çıkarma tehdidi ile cevapladı.

    Hive Social Nedir?

    Hive Social, yakın dönemde popülerlik kazanan ve Instagram, Twitter, hatta MySpace'in bazı tanıdık öğelerini birleştiren bir sosyal medya platformudur.

    Marvel’s Spider-Man Miles Morales PC Sürümü Yayınlandı!

    Sony, uzun süredir merakla beklenen Marvel's Spider Man: Miles Morales PC sürümünü yayınladı. İşte Spider Man Miles Morales fiyatı ve sistem gereksinimleri!

    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