Было бы лучше проверить по с помощью обратного поиска DNS , поскольку User Agent может быть подделан . PHP делает это довольно легко, вот пример теста:
// $ip = $_SERVER['REMOTE_ADDR']; // Use to check the visitor IP
$ip = '66.249.66.1'; // Sample Google IP from their docs
$host_name = gethostbyaddr($ip);
$is_google = strpos($host_name, 'google') !== false ? 'is' : 'is <b>NOT</b>';
echo "<p>$host_name</p>";
echo "<p>IP Address $is_google Google</p>";
Теперь мы можем проверить, вошел ли пользователь в систему и не являются ли они ботом Google. Рекомендуется использовать WordPress template_redirect
hook . Добавьте это в ваш functions.php
файл темы:
/**
* Redirect the user to login if they are not logged in and not a google bot
*/
function redirect_not_logged_in_not_google() {
$host_name = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if( strpos($host_name, 'google') === false && !is_user_logged_in() ) {
wp_redirect( home_url( '/login/' ) );
die;
}
}
add_action( 'template_redirect', 'redirect_not_logged_in_not_google' );