Как создать простой регистратор ботов для WordPress?

#php #wordpress #logging #bots #code-snippets

#php #wordpress #ведение журнала #боты #фрагменты кода

Вопрос:

честно говоря, я не очень опытный программист. Но я хотел бы иметь какой-нибудь простой регистратор ботов для WordPress. Все, что мне нужно, это просто записать имя ‘user-agent’ в какой-нибудь базовый текстовый файл.

Наличие даты / времени — это просто бонус.

Кто-нибудь знает какой-нибудь простой php-код / фрагмент, который я могу вставить в header.php или functions.php пожалуйста?

Спасибо. С наилучшими пожеланиями,

Милан

ОБНОВЛЕНИЕ: Итак, решение Кристофера Айвза работает отлично, спасибо.

И если я хочу указать время и дату посещения пользовательского агента, что я должен вставить в:

 add_action('wp', function(){
  file_put_contents(__DIR__.'/useragents.log', $_SERVER['HTTP_USER_AGENT']."n", FILE_APPEND);
});
  

Как это должно выглядеть? Я что-то не так делаю с символами , . ; Я в замешательстве : (

Ответ №1:

Вы можете использовать простую функцию, чтобы записать что-то в файл:

 function simpleLogger ($logMsg){
    file_put_contents('./log_'.date("j.n.Y").'.log', $logMsg, FILE_APPEND);
}
  

Ответ №2:

В вашем плагине WordPress вам нужно подключаться к каждому запросу страницы и записывать его в файл:

 add_action('wp', function(){
  file_put_contents(__DIR__.'/useragents.log', $_SERVER['HTTP_USER_AGENT']."n", FILE_APPEND);
});
  

Однако имейте в виду, что многие среды PHP не имеют доступа на запись к файлам по соображениям безопасности, поэтому вам понадобится chmod g w этот файл, чтобы он был доступен для записи с помощью PHP. Также имейте в виду, что эта информация, вероятно, уже существует в /var/log/apache/*access.log , а также во многих существующих плагинах WordPress, которые сохранят эту информацию в базе данных и предоставят вам базовые функции отчетности, такие как статистика WP

Комментарии:

1. Спасибо! Выглядит интересно. Я знаю, что файл должен быть 775 или 777, если не будут добавлены дополнительные правила (я думаю :)) И теперь я установил SSH-соединение со своим VPS, но по некоторым причинам я не могу видеть ни одного существующего журнала, который должен быть виден на моей стороне. Например: у меня есть изображение / disk_1/log / или / disk_1/home / web /logs /, и оно пустое :-/

Ответ №3:

Я разобрался 🙂

 add_action('wp',function () {
$timestamp = date('d/m/Y h:i:s ');
file_put_contents(__DIR__ .'/useragents.log', $timestamp.$_SERVER['HTTP_USER_AGENT']."n",FILE_APPEND); }
);