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 1689 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:

    Fatih Karagümrük - Çorum FK Maç Kadrosu, Ne Zaman ve Saat Kaçta? Trendyol 1. Lig

    Trendyol 1. Lig'in 21. haftasında Fatih Karagümrük ile Çorum FK, 26 Ocak 2025 Pazar günü kozlarını paylaşacak. Kritik mücadele, saat 16.00’da İstanbul Atatürk Olimpiyat Stadyumu’nda oynanacak ve TRT Spor ekranlarından canlı yayınlanacak. Üst sıralara tırm

    Fenerbahçe - Göztepe Maç Kadrosu, Ne Zaman ve Saat Kaçta? Trendyol Süper Lig

    Trendyol Süper Lig'in 21. haftasında Fenerbahçe, sahasında Göztepe’yi konuk edecek. Kadıköy’de oynanacak bu önemli mücadele, 26 Ocak 2025 Pazar günü saat 19.00’da başlayacak ve beIN Sports 1 ekranlarından canlı olarak yayınlanacak. İşte maç öncesi tüm det

    Bodrum FK - Eyüpspor Maç Kadrosu, Ne Zaman ve Saat Kaçta? Trendyol Süper Lig

    Trendyol Süper Lig'in 2024-2025 sezonunda heyecan dolu bir karşılaşma futbolseverleri bekliyor. Bodrum FK, Eyüpspor’u ağırlarken iki takım da zorlu mücadelenin galibi olmak için sahaya çıkacak. Karşılaşma, 26 Ocak 2025 Pazar günü saat 16.00'da başlayacak

    Antalyaspor - Beşiktaş Maç Kadrosu, Ne Zaman ve Saat Kaçta? Trendyol Süper Lig

    Trendyol Süper Lig'in 21. haftasında Antalyaspor ile Beşiktaş karşı karşıya geliyor. Ole Gunnar Solskjaer, Beşiktaş'ın başında ilk kez bir lig maçına çıkarken, Antalyaspor yeni teknik direktörü Emre Belözoğlu yönetiminde kötü gidişatı sonlandırmayı hedefl

    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