grossomodo così

[php]
/* Nel template dell'header all'inizio subito dopo require(ABSPATH . 'wp-blog-header.php'); */

function authenticate() {
header('WWW-Authenticate: Basic realm="Nome Pagina"');
header('HTTP/1.0 401 Unauthorized');
echo "Per poter accedere a questa risorsa occorre inserire una coppia login e password valide";
exit;
}

if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_POST['reauth'])) {
authenticate();
} else {

$u=$_SERVER['PHP_AUTH_USER'];
$p=md5($_SERVER['PHP_AUTH_PW']);

global $wpdb;

if(!$wpdb->get_var("SELECT ID FROM wp_users WHERE user_login = '".$u."' AND user_pass = '".$p."' LIMIT 1"))
{

echo "login errato, verrete rimandati automaticamente alla pagina per effettuare un corretto login.";
echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='POST'>\n";
echo "<input type='hidden' name='reauth' value='1'><input type='submit' value='Ri autentifica'>\n";
echo "</form></p>\n";
exit;
}
} [/php]

così però nessuno si può registrare, perchè non visualizzerebbe mai la pagina, solo tu dal pannello admin potresti aggiungere nuovi utenti.