Ограничение попыток входа без плагина

<?php
/**
* CLASS LIMIT LOGIN ATTEMPTS
* Prevent Mass WordPress Login Attacks by setting locking the system when login fail.
* To be added in functions.php or as an external file.
*/
if ( ! class_exists( 'Limit_Login_Attempts' ) ) {
class Limit_Login_Attempts {
    var $failed_login_limit = 3;                    //Giris Denemesi
    var $lockout_duration   = 1800;                 //Sureyi sn cinsinden giriniz. 30 dakika: 60*30 = 1800
    var $transient_name     = 'attempted_login';    //Transient used

    public function __construct() {
    add_filter( 'authenticate', array( $this, 'check_attempted_login' ), 30, 3 );
    add_action( 'wp_login_failed', array( $this, 'login_failed' ), 10, 1 );
    }

    /**
    * Lock login attempts of failed login limit is reached
    */
    public function check_attempted_login( $user, $username, $password ) {
        if ( get_transient( $this->transient_name ) ) {
            $datas = get_transient( $this->transient_name );
            if ( $datas['tried'] >= $this->failed_login_limit ) {
                $until = get_option( '_transient_timeout_' . $this->transient_name );
                $time = $this->when( $until );
                //Display error message to the user when limit is reached
                return new WP_Error( 'too_many_tried', sprintf( __( '<strong>HATA</strong>: Kimlik dogrulama sinirina ulastiniz, %1$s sonra lutfen tekrar deneyiniz.' ) , $time ) );
            }
        }
        return $user;
    }

    /**
    * Add transient
    */
    public function login_failed( $username ) {
        if ( get_transient( $this->transient_name ) ) {
            $datas = get_transient( $this->transient_name );
            $datas['tried']++;
        if ( $datas['tried'] <= $this->failed_login_limit )
            set_transient( $this->transient_name, $datas , $this->lockout_duration );
        } else {
            $datas = array(
            'tried'     => 1
        );
            set_transient( $this->transient_name, $datas , $this->lockout_duration );
        }
    }

    /**
    * Return difference between 2 given dates
    * @param  int      $time   Date as Unix timestamp
    * @return string           Return string
    */
    private function when( $time ) {
        if ( ! $time )
        return;
            $right_now = time();
            $diff = abs( $right_now - $time );
            $second = 1;
            $minute = $second * 60;
            $hour = $minute * 60;
            $day = $hour * 24;
        if ( $diff < $minute )
            return floor( $diff / $second ) . ' saniye';
        if ( $diff < $minute * 2 )
            return "yaklasik 1 dakika once";
        if ( $diff < $hour )
            return floor( $diff / $minute ) . ' dakika';
        if ( $diff < $hour * 2 )
            return 'yaklasik  1 saat once';
            return floor( $diff / $hour ) . ' saat';
    }
}
}
//Enable it:
new Limit_Login_Attempts();

Код можно добавить в functions.php. В 28 строке текст изменить на свой.