自己ホスト型、バージョン4.8.1の新規インストール、2017デフォルトテーマのサイトAPIキーを使ってAkismetプラグインを起動しました。 single.php
を更新:なぜAkismetが鍵確認で失敗したのですか?
if (function_exists('akismet_verify_key')) :
$testing = akismet_verify_key(akismet_get_key(), site_url());
echo $testing;
endif;
が、それは常にfailed
が戻ってきます。サイトドメイン名がAkismetダッシュボードに含まれていることを確認しましたが、何らかの理由で[キー確認文書] [1]を読んだ後に機能が検出されても、true
は返されません。私はPHPの例をコピーしてakismet_check
に機能の命名規則を変更した場合
:
function akismet_check($key, $blog) {
$blog = urlencode($blog);
$request = 'key='. $key .'&blog='. $blog;
$host = $http_host = 'rest.akismet.com';
$path = '/1.1/verify-key';
$port = 443;
$akismet_ua = "WordPress/4.4.1 | Akismet/3.1.7";
$content_length = strlen($request);
$http_request = "POST $path HTTP/1.0\r\n";
$http_request .= "Host: $host\r\n";
$http_request .= "Content-Type: application/x-www-form-urlencoded\r\n";
$http_request .= "Content-Length: {$content_length}\r\n";
$http_request .= "User-Agent: {$akismet_ua}\r\n";
$http_request .= "\r\n";
$http_request .= $request;
$response = '';
if (false != ($fs = @fsockopen('ssl://' . $http_host, $port, $errno, $errstr, 10))) :
fwrite($fs, $http_request);
while (!feof($fs))
$response .= fgets($fs, 1160); // One TCP-IP packet
fclose($fs);
$response = explode("\r\n\r\n", $response, 2);
endif;
if ('valid' == $response[1]) :
return true;
else :
return false;
endif;
}
と、それを渡す:
echo 'Akismet shows ' . $result = akismet_check(akismet_get_key(), site_url());
機能がすでに存在している場合、私は理解していないと私はそれがなぜ私が失敗しているのかを検出することができます。 Akismetは鍵検証の代替手段を持っていますので、akismet_verify_key
が機能しない場合や、何か間違っている場合、すでに存在すると思われることを行うために関数全体を書き直す必要はありませんか?