Сервис комментариев Anycomment для сайтов на WordPress перестал работать для российских пользователей и многие администраторы сайтов столкнулись с проблемой, как экспортировать комментарии сайта в другой сервис комментирования или базу WP.
Дело в том, что anycomment.io не предлагает скачать файл комментариев или экспортировать их, чтобы перенести уже имеющиеся комментарии на сайте в другой сервис.
Важный момент: система комментариев anycomment имеет как и плагин для WordPress, где комментарии сохраняются в базу WP и экспортировать их можно при помощи SQL‑экспорт таблицы wp_comments, так и облачные комментарии, где сами комментарии хранятся в базе на сервере anycomment.io и подключаются к сайту при помощи скрипта. В обоях методов размещения комментариев (плагин или облачные), нет возможности экспортировать или скачать комментарии уже написанные на сайте. Но, если комментарии на сайте при помощи плагина, то их можно экспортировать при помощи специальных плагинов как "Comments Import & Export", а облачные нет, только по API.
В данном руководстве я собрал скрипт API для PowerShell в Windows, который сделает автоматически экспорт комментариев с сайта WordPress в CSV и json форматов из системы Anycomment.
Как скачать комментарии сайта из сервиса Anycomment в формат CSV и json
1. В первую очередь нужно узнать API ключ Anycomment, а точнее токен. Перейдите в сервис Anycomment и настройки сайта к которому подключены комментарии. В параметрах выберите "API" и нужна первая самая строчка API справа. Не закрывайте данный раздел сервиса, так как удобнее будет копировать API.
2. Если нажать на "Здесь" выше API ключа, будет документация API создателя Anycomment (https://anycommentio.docs.apiary.io/), где описывается работа системы комментариев. Исходя из данного кода я собрал экспорт комментариев из сайта на WordPress при помощи PowerShell в Windows. Соответственно, создайте текстовый .txt файл на рабочем столе и вставьте ниже скрипт:
param(
[Parameter(Mandatory=$true)]
[string]$Token, # Website API key
[Parameter(Mandatory=$false)]
[string]$PageUrl = "", # Фильтр по URL страницы
[Parameter(Mandatory=$false)]
[int]$AppId = 0, # app_id нужен только для жалоб
[Parameter(Mandatory=$false)]
[string]$OutputDir = ".\AnyCommentExport-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
)
# Создаем папку
if (!(Test-Path $OutputDir)) { New-Item -ItemType Directory -Path $OutputDir | Out-Null }
$BaseUrl = "https://anycomment.io/v1"
# Универсальная функция GET
function Invoke-AnyCommentGet {
param(
[string]$Endpoint,
[hashtable]$QueryParams
)
$query = ($QueryParams.GetEnumerator() | ForEach-Object {
"$($_.Key)=$([uri]::EscapeDataString($_.Value))"
}) -join "&"
$url = "$BaseUrl$Endpoint?$query"
try {
return Invoke-RestMethod -Uri $url -Method GET -ErrorAction Stop
}
catch {
Write-Host "...: $url" -ForegroundColor Red
Write-Host $_.Exception.Message
return $null
}
}
# ================================
# 1. Информация о сайте
# ================================
Write-Host "..." -ForegroundColor Green
$siteInfo = Invoke-AnyCommentGet "/client/app/info" @{ token = $Token }
if ($siteInfo) {
$siteInfo | ConvertTo-Json -Depth 10 | Out-File "$OutputDir\site_info.json"
}
# ================================
# 2. Экспорт комментариев (с пагинацией)
# ================================
Write-Host "..." -ForegroundColor Green
$AllComments = @()
$NextUrl = "$BaseUrl/client/comment?token=$Token&page=1&per-page=50"
if ($PageUrl) {
$NextUrl += "&page_url=$([uri]::EscapeDataString($PageUrl))"
}
while ($NextUrl) {
Write-Host "...: $NextUrl"
try {
$Response = Invoke-RestMethod -Uri $NextUrl -Method GET -ErrorAction Stop
}
catch {
Write-Host "...." -ForegroundColor Red
break
}
$Items = $Response.items
$Users = $Response.users
$Pages = $Response.pages
foreach ($c in $Items) {
$User = $Users["$($c.author_id)"]
$PageInfo = $Pages["$($c.website_page_id)"]
$AllComments += [PSCustomObject]@{
CommentId = $c.id
ParentId = $c.parent_id
Content = ($c.content -replace '<[^>]+>', '')
Created = $c.created_date
Updated = $c.updated_date
AuthorId = $User.id
AuthorName = $User.name
AuthorEmail = $User.email
AuthorUsername= $User.username
PageId = $PageInfo.id
PageTitle = $PageInfo.page_title
PageUrl = $PageInfo.url
}
}
# ....
if ($Response._links.next.href) {
$NextUrl = $Response._links.next.href
}
else {
$NextUrl = $null
}
}
# Сохранение
$AllComments | ConvertTo-Json -Depth 10 | Out-File "$OutputDir\comments_full.json" -Encoding UTF8
$AllComments | Export-Csv "$OutputDir\comments.csv" -NoTypeInformation -Encoding UTF8
Write-Host ".... $($AllComments.Count) ...." -ForegroundColor Green
# ================================
# 3. Экспорт жалоб (complaints) mywebpc.ru
# ================================
if ($AppId -gt 0) {
Write-Host "..." -ForegroundColor Green
$complaints = Invoke-AnyCommentGet "/client/complaint" @{
app_id = $AppId
token = $Token
}
if ($complaints) {
$complaints | ConvertTo-Json -Depth 10 | Out-File "$OutputDir\complaints.json"
}
}
Write-Host "...: $OutputDir" -ForegroundColor Cyan
- В текстовом документе, куда вставили скрипт, нажмите "Файл" → "Сохранить как".
- Выберите тип файла: Все файлы (*.*) и напишите имя файла: Export-AnyComment.ps1.
- Нажмите "Сохранить". Я сохранил по пути "Рабочий стол" в "Новая папка". Можете также, чтобы не путаться далее.

3. Запустите PowerShell от имени администратора и введите ниже команды, чтобы экспортировать комментарии в файл формата CSV и json:
Set-ExecutionPolicy RemoteSigned
cd "C:\Users\myweb\Desktop\Новая папка\"
.\Export-AnyComment.ps1 -Token "ТВОЙ_API_КЛЮЧ"
- Первая команда включает разрешение выполнить скрипт один раз.
- Второй командой указываем путь к файлу ".ps1", где находится сам скрипт.
- Третей, запускаем скрипт в работу, где указываем свой API токен (первый шаг выше).

4. Перейдите в папку, где находился файл скрипт Export-AnyComment.ps1, в моем случае "Новая папка", там будут сохраненные уже комментарии из вашего сайта WordPress в формате CSV и json, которые были подключены через Anycomment.
Как экспортировать комментарии Anycomment
Сервис комментариев Anycomment для сайтов на WordPress перестал работать для российских пользователей и многие администраторы сайтов столкнулись с проблемой, как экспортировать комментарии сайта в другой сервис комментирования или базу WP.
Дело в том, что anycomment.io не предлагает скачать файл комментариев или экспортировать их, чтобы перенести уже имеющиеся комментарии на сайте в другой сервис.
Важный момент: система комментариев anycomment имеет как и плагин для WordPress, где комментарии сохраняются в базу WP и экспортировать их можно при помощи SQL‑экспорт таблицы wp_comments, так и облачные комментарии, где сами комментарии хранятся в базе на сервере anycomment.io и подключаются к сайту при помощи скрипта. В обоях методов размещения комментариев (плагин или облачные), нет возможности экспортировать или скачать комментарии уже написанные на сайте. Но, если комментарии на сайте при помощи плагина, то их можно экспортировать при помощи специальных плагинов как "Comments Import & Export", а облачные нет, только по API.
В данном руководстве я собрал скрипт API для PowerShell в Windows, который сделает автоматически экспорт комментариев с сайта WordPress в CSV и json форматов из системы Anycomment.
Как скачать комментарии сайта из сервиса Anycomment в формат CSV и json
1. В первую очередь нужно узнать API ключ Anycomment, а точнее токен. Перейдите в сервис Anycomment и настройки сайта к которому подключены комментарии. В параметрах выберите "API" и нужна первая самая строчка API справа. Не закрывайте данный раздел сервиса, так как удобнее будет копировать API.
2. Если нажать на "Здесь" выше API ключа, будет документация API создателя Anycomment (https://anycommentio.docs.apiary.io/), где описывается работа системы комментариев. Исходя из данного кода я собрал экспорт комментариев из сайта на WordPress при помощи PowerShell в Windows. Соответственно, создайте текстовый .txt файл на рабочем столе и вставьте ниже скрипт:
param( [Parameter(Mandatory=$true)] [string]$Token, # Website API key [Parameter(Mandatory=$false)] [string]$PageUrl = "", # Фильтр по URL страницы [Parameter(Mandatory=$false)] [int]$AppId = 0, # app_id нужен только для жалоб [Parameter(Mandatory=$false)] [string]$OutputDir = ".\AnyCommentExport-$(Get-Date -Format 'yyyyMMdd-HHmmss')" ) # Создаем папку if (!(Test-Path $OutputDir)) { New-Item -ItemType Directory -Path $OutputDir | Out-Null } $BaseUrl = "https://anycomment.io/v1" # Универсальная функция GET function Invoke-AnyCommentGet { param( [string]$Endpoint, [hashtable]$QueryParams ) $query = ($QueryParams.GetEnumerator() | ForEach-Object { "$($_.Key)=$([uri]::EscapeDataString($_.Value))" }) -join "&" $url = "$BaseUrl$Endpoint?$query" try { return Invoke-RestMethod -Uri $url -Method GET -ErrorAction Stop } catch { Write-Host "...: $url" -ForegroundColor Red Write-Host $_.Exception.Message return $null } } # ================================ # 1. Информация о сайте # ================================ Write-Host "..." -ForegroundColor Green $siteInfo = Invoke-AnyCommentGet "/client/app/info" @{ token = $Token } if ($siteInfo) { $siteInfo | ConvertTo-Json -Depth 10 | Out-File "$OutputDir\site_info.json" } # ================================ # 2. Экспорт комментариев (с пагинацией) # ================================ Write-Host "..." -ForegroundColor Green $AllComments = @() $NextUrl = "$BaseUrl/client/comment?token=$Token&page=1&per-page=50" if ($PageUrl) { $NextUrl += "&page_url=$([uri]::EscapeDataString($PageUrl))" } while ($NextUrl) { Write-Host "...: $NextUrl" try { $Response = Invoke-RestMethod -Uri $NextUrl -Method GET -ErrorAction Stop } catch { Write-Host "...." -ForegroundColor Red break } $Items = $Response.items $Users = $Response.users $Pages = $Response.pages foreach ($c in $Items) { $User = $Users["$($c.author_id)"] $PageInfo = $Pages["$($c.website_page_id)"] $AllComments += [PSCustomObject]@{ CommentId = $c.id ParentId = $c.parent_id Content = ($c.content -replace '<[^>]+>', '') Created = $c.created_date Updated = $c.updated_date AuthorId = $User.id AuthorName = $User.name AuthorEmail = $User.email AuthorUsername= $User.username PageId = $PageInfo.id PageTitle = $PageInfo.page_title PageUrl = $PageInfo.url } } # .... if ($Response._links.next.href) { $NextUrl = $Response._links.next.href } else { $NextUrl = $null } } # Сохранение $AllComments | ConvertTo-Json -Depth 10 | Out-File "$OutputDir\comments_full.json" -Encoding UTF8 $AllComments | Export-Csv "$OutputDir\comments.csv" -NoTypeInformation -Encoding UTF8 Write-Host ".... $($AllComments.Count) ...." -ForegroundColor Green # ================================ # 3. Экспорт жалоб (complaints) mywebpc.ru # ================================ if ($AppId -gt 0) { Write-Host "..." -ForegroundColor Green $complaints = Invoke-AnyCommentGet "/client/complaint" @{ app_id = $AppId token = $Token } if ($complaints) { $complaints | ConvertTo-Json -Depth 10 | Out-File "$OutputDir\complaints.json" } } Write-Host "...: $OutputDir" -ForegroundColor Cyan3. Запустите PowerShell от имени администратора и введите ниже команды, чтобы экспортировать комментарии в файл формата CSV и json:
4. Перейдите в папку, где находился файл скрипт Export-AnyComment.ps1, в моем случае "Новая папка", там будут сохраненные уже комментарии из вашего сайта WordPress в формате CSV и json, которые были подключены через Anycomment.