Функция is_robots()
в WordPress проверяет, является ли текущий запрос запросом к файлу robots.txt
. Этот файл используется для управления индексацией сайтов поисковыми системами. Если физический файл robots.txt
отсутствует в корневом каталоге сайта, WordPress автоматически генерирует его содержимое в ответ на запрос.
is_robots(): bool
Возвращаемое значение
- bool — функция возвращает
true
, если текущий запрос направлен на файлrobots.txt
, иfalse
в противном случае.
Пример 1: Проверка запроса к robots.txt
В следующем примере мы проверяем, является ли текущий запрос запросом к robots.txt
, используя хук wp
. Если это так, выполнение функции прекращается.
add_action('wp', function() {
if (is_robots()) {
// Запрос к robots.txt, ничего не делаем
return;
}
// Выполняем действия, если это не robots.txt
echo '<p>Это не запрос к robots.txt.</p>';
});
Результат: Если пользователь запрашивает robots.txt
, сообщение не будет отображаться.
Пример 2: Добавление пользовательского содержимого в robots.txt
Можно использовать is_robots()
, чтобы добавлять кастомные правила в генерируемый файл robots.txt
.
add_action('do_robots', function() {
if (is_robots()) {
// Добавляем дополнительные правила для поисковых систем
echo "User-agent: *\n";
echo "Disallow: /private/\n";
echo "Allow: /public/\n";
}
});
Результат: В файл robots.txt
будут добавлены правила, запрещающие индексацию /private/
и разрешающие /public/
.
Пример 3: Логирование запросов к robots.txt
Этот код будет записывать запросы к robots.txt
в лог-файл для последующего анализа.
add_action('wp', function() {
if (is_robots()) {
// Логируем запрос
error_log('Запрос к robots.txt выполнен: ' . $_SERVER['REQUEST_URI']);
}
});
Результат: Каждый раз, когда происходит запрос к robots.txt
, соответствующая запись будет добавляться в лог ошибок сервера.
Пример 4: Условная обработка запросов
В этом примере мы изменим поведение сайта в зависимости от того, запрашивается ли файл robots.txt
.
add_action('template_redirect', function() {
if (is_robots()) {
// Изменяем заголовок для robots.txt
header('Content-Type: text/plain');
return;
}
// Стандартная обработка запросов
});
Результат: Если запрашивается robots.txt
, заголовок ответа будет изменён на text/plain
.
Пример 5: Поддержка кастомных правил
В этом примере мы добавляем правила в robots.txt
, только если это не запрос к обычному контенту.
add_action('do_robots', function() {
if (!is_robots()) {
echo "User-agent: Googlebot\n";
echo "Disallow: /no-google/\n";
}
});
Результат: Если запрос не к robots.txt
, будет добавлено правило для Googlebot.
Заключение
Функция is_robots()
в WordPress позволяет разработчикам легко управлять содержимым файла robots.txt
и обрабатывать запросы к этому файлу. Она открывает возможности для создания кастомизированного контента, улучшая взаимодействие сайта с поисковыми системами.