昨日、コメントメール通知機能「WordPress のメール返信スタイルを装飾する」を有効にしたばかりのところ、メール内のコメント投稿者の IP が間違っていることに気付きました。WordPress が CDN の IP ノードを取得していたのです。
これでは、Web サイト訪問者の地域的な関係を分析しにくくなりますし、WordPress に標準搭載されている IP によるコメントブロック機能も使えなくなってしまいます。そこで、これを解決したいと思いました。さっそくネットで関連情報を調べたところ、幻杀ブログで完璧な解決策を見つけました。以下で皆さんに共有します。

解決策
WordPress のルートディレクトリにある wp-config.php ファイルを開き、ファイルの末尾に以下のコードを追加します。
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
原理
CDN の HTTP ヘッダーには訪問者の IP データが記録されています。このコードは、WordPress の IP 変数を $_SERVER から取得したものに置き換えるものです。上記のコードは任意の CDN やリバースプロキシで使用でき、IP アドレスを正しく取得できます。