Я бы хотел проверить специальную форму против спама с помощью Akismet. Я искал в Интернете, и единственным простым способом я нашел это (см. Выдержку ниже): http://www.binarymoon.co.uk/2010/03/akismet-plugin-theme-stop-spam-dead/. К сожалению, $ isSpam возвращает true!Как интегрировать Akismet в wordpress/php программно
Кто-нибудь знает, как сделать магию? Я ценю вашу помощь.
function akismet_isSpam ($content) {
// innocent until proven guilty
$isSpam = FALSE;
$content = (array) $content;
if (function_exists('akismet_init')) {
$wpcom_api_key = get_option('wordpress_api_key');
if (!empty($wpcom_api_key)) {
global $akismet_api_host, $akismet_api_port;
// set remaining required values for akismet api
$content['user_ip'] = preg_replace('/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR']);
$content['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
$content['referrer'] = $_SERVER['HTTP_REFERER'];
$content['blog'] = get_option('home');
if (empty($content['referrer'])) {
$content['referrer'] = get_permalink();
}
$queryString = '';
foreach ($content as $key => $data) {
if (!empty($data)) {
$queryString .= $key . '=' . urlencode(stripslashes($data)) . '&';
}
}
$response = akismet_http_post($queryString, $akismet_api_host, '/1.1/comment-check', $akismet_api_port);
smart_dump($response, true);
if ($response[1] == 'true') {
update_option('akismet_spam_count', get_option('akismet_spam_count') + 1);
$isSpam = TRUE;
}
}
}
return $isSpam;
}
Решение работает (возвращает true). Тем не менее, я не совсем уверен, что Akismet выполняет свою работу, поскольку он возвращает true также, когда я передал тестовую строку, которую я нашел в Интернете .. (заявив, что массив ответов $ кажется правильно указанным). Спасибо. – user1232551