WordPress:”ダウンロードに失敗しました。 有効な URL ではありません。”の対処方法

2021年8月26日

WordPressでプラグインやテーマを更新した際に"ダウンロードに失敗しました。 有効な URL ではありません。"と表示され更新ができないときの対処方法について覚書。

発生する問題

プラグインやテーマの更新が通知されて、対象を更新すると以下のようなエラーメッセージが表示されて更新が失敗します。

「更新失敗:ダウンロードに失敗しました。有効なURLではありません。」

画面で見るとこんな感じです。

[今すぐ更新]をクリック。

[今すぐ更新]ボタンが[更新に失敗しました。]に変わる。
メッセージとして、「更新失敗:ダウンロードに失敗しました。有効なURLではありません。」と表示されます。

プラグインの一覧画面だとこんな感じで同様のエラーメッセージが表示されます。

原因

プロキシサーバーを通してインターネットにアクセスしている環境だとDNSの関係でこの問題が発生するようです。

会社のLAN内にWordPressの環境を構築していたりするとこの問題が発生する可能性が高いです。

正直ネットワークには詳しくないので、詳細な説明はできないです、ごめんなさい。

対処方法の元ネタは、WordPressのフォーラム(海外版)にあげられていた記事になります。

プロキシサーバー環境で必要なWordPressの設定

会社のLAN上にWordPressの環境を構築する場合は、プロキシサーバーを使用する設定を予め設定しておく必要があります。

「ダウンロードに失敗しました。 有効な URL ではありません。」のエラーは、設定が終わっていることが前提で発生する問題なので、設定は割愛します。

設定の詳細については以下の記事を参照してください。

対処方法

WordPressの海外フォーラムに対処方法が載っています。

まずWordPressがインストール(配置)されているフォルダ配下にある「wp-includes」フォルダを開きます。

フォルダ内に「http.php」というファイルがあるので、メモ帳などのテキストエディタで開きます。

「http.php」ファイルの中身を変更しますので、念の為「http.php」ファイルのバックアップをとっておくことをおすすめします。

551行目(WordPress Ver.5.8の場合)の「return false;」を削除し、替わりに「$ip = false;」を追記します。

コード変更前(デフォルトの「http.php」ファイル)

$ip = gethostbyname( $host );
if ( $ip === $host ) { // Error condition for gethostbyname().
	return false;
}

コード変更後

$ip = gethostbyname( $host );
if ( $ip === $host ) { // Error condition for gethostbyname().
	$ip = false;
}

変更したら「http.php」ファイルを上書き保存します。

記事の時点ではWordPressのVer.5.8の「http.php」ファイルにもとづいていますが、今後バージョンアップや旧バージョンでは修正箇所の行番号が異なる可能性がありますので注意してください。

「http.php」ファイルの変更結果の確認

「http.php」ファイルを変更して上書き保存したら実際に更新が成功するか確認します。

プラグインの更新の場合を例として説明します。

WordPressの[プラグイン]画面を表示して、更新対象のプラグインの[今すぐ更新]をクリックします。

画面のようにエラーとならず、「更新しました。」と表示されればOKです。

まとめ

プラグインやテーマの更新時に「ダウンロードに失敗しました。 有効な URL ではありません。」と表示され、更新が失敗する場合の対処方法について説明しました。

海外のフォーラムの内容そのままですが、日本語でわかりやすく書いておいたほうがいいかなと思って記事にしました。

(Visited 101 times, 101 visits today)