Voici le code d’un fichier .htaccess pour protéger l’administration de WordPress via un fichier .htpasswd. En effet, il ne suffit pas de bloquer le répertoire wp-admin car si votre site internet utilise des requêtes ajax, celles-ci passent par un fichier admin-ajax.php situé dans ce réperoire. Il faut donc supprimer  l’accès à tout le répertoire wp-admin excepté ce fichier :

AuthName "Protection Administration"
AuthType Basic
AuthUserFile "/var/www/mon-site/wp-admin/.htpasswd"
Require valid-user
<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>