プラグイン → 新規追加 → プラグインのアップロード(または 外観 → テーマ → 新規追加 → テーマのアップロード)からプラグインまたはテーマの .zip ファイルをアップロードすると、次のエラー画面にリダイレクトされます。
リンクは期限切れのようです。
ページの再読み込み、ZIPファイルの再ダウンロード、ログアウト・再ログインのいずれも効果がありません。
なぜ WordPress はこのメッセージを表示するのか
このメッセージは誤解を招きます。実際には nonce の期限切れではなく、まったく別の問題です。WordPress の nonce チェックが実行される前に、PHP がアップロードを拒否しています。.zip ファイルがサーバーのアップロードサイズ制限を超えたため、PHP が POST ボディを破棄し、WordPress は空のフォーム送信を受け取って「nonce トークンが古い」と誤認します。
メッセージが誤解を招く理由
この文字列はプラグインやホスト側のカスタマイズではなく、WordPress 本体のものです。
- 出典:
wp-includes/functions.phpのwp_nonce_ays() - 定義:
$html = __( 'The link you followed has expired.' ); - 発火タイミング:
check_admin_referer()の nonce 検証が失敗したとき
同じメッセージが3つの異なる原因で発火します。
- POST ボディが
post_max_sizeを超過 — PHP が WordPress 実行前にボディを破棄するため、$_POSTから_wpnonceが消える。本記事で扱うケース。 - nonce の実際の期限切れ — フォームを24時間以上開いたままにした場合(WordPress のデフォルト nonce 有効期限)。
- CSRF / クロスサイト送信 — nonce が欠落、または別セッションのもの。
どのケースかを見分ける方法: アップロードしようとしたファイルがアップロード画面に表示されている「最大アップロードファイルサイズ」より大きい場合は原因 #1 です。PHP はスクリプト実行前にウェブサーバー境界でボディを拒否するため、PHP エラーログには何も残りません。
根本原因
サーバーの PHP 設定でアップロード制限が低く設定されています。標準の PHP イメージで WordPress を新規インストールした場合のデフォルトは以下のとおりです。
| 設定項目 | デフォルト値 | 業界標準の目安 |
|---|---|---|
upload_max_filesize |
2 MB | 64 MB |
post_max_size |
8 MB | 64 MB |
memory_limit |
128 MB | 256–512 MB |
upload_max_filesize を超えるプラグイン・テーマ ZIP、または post_max_size を超える POST ボディ(ファイル + フォームフィールド)は無言で切り詰められます。2 MB を超えるプラグイン(多くの有料プラグイン、ページビルダー、WooCommerce 拡張など)はこれに該当します。
解決方法
PHP の制限値を以下の値に引き上げてください。SiteGround・WP Engine・Kinsta などの主要な WordPress ホスティング会社がデフォルトで採用している値です。
upload_max_filesize = 256M
post_max_size = 256M
memory_limit = 512M
max_execution_time = 300
max_input_time = 300
設定を書き込む場所はホスティングの種類によって異なります。
- 共用・cPanel ホスティング — WordPress ルートの
php.iniに追記、またはホスト管理画面の「PHP 設定」/「MultiPHP INI エディタ」を使用。 - マネージド WordPress ホスティング — 多くの場合ダッシュボードのスライダーで変更可能。または技術サポートに依頼。
- VPS / Docker —
/usr/local/etc/php/conf.d/(Docker)または/etc/php/<ver>/apache2/conf.d/(Linux)にuploads.iniファイルを作成し、PHP/Apache を再起動。
変更後、ツール → サイトヘルス → 情報 → メディア処理 で upload_max_filesize が新しい値になっているか確認してください。
この問題に該当するかの確認方法
- 失敗したアップロードのファイルサイズが、アップロード画面の「最大アップロードファイルサイズ」より大きい。
- 大きなプラグイン・テーマ ZIP のみで発生し、小さいものは問題なくアップロードできる。
- アップロード失敗時に PHP エラーログに何も出ない(PHP がスクリプト実行前にウェブサーバーレベルで拒否しているため)。
それでも解決しない場合
制限値を上げても解決しない場合は、ご利用のホスティング会社名とアップロードしようとしたファイルサイズを明記のうえ support@wpproconverter.com までご連絡ください。