プラグイン・テーマのアップロード時に「リンクは期限切れのようです」と表示される

プラグイン → 新規追加 → プラグインのアップロード(または 外観 → テーマ → 新規追加 → テーマのアップロード)からプラグインまたはテーマの .zip ファイルをアップロードすると、次のエラー画面にリダイレクトされます。

リンクは期限切れのようです。

ページの再読み込み、ZIPファイルの再ダウンロード、ログアウト・再ログインのいずれも効果がありません。

なぜ WordPress はこのメッセージを表示するのか

このメッセージは誤解を招きます。実際には nonce の期限切れではなく、まったく別の問題です。WordPress の nonce チェックが実行される前に、PHP がアップロードを拒否しています。.zip ファイルがサーバーのアップロードサイズ制限を超えたため、PHP が POST ボディを破棄し、WordPress は空のフォーム送信を受け取って「nonce トークンが古い」と誤認します。

メッセージが誤解を招く理由

この文字列はプラグインやホスト側のカスタマイズではなく、WordPress 本体のものです。

  • 出典: wp-includes/functions.phpwp_nonce_ays()
  • 定義: $html = __( 'The link you followed has expired.' );
  • 発火タイミング: check_admin_referer() の nonce 検証が失敗したとき

同じメッセージが3つの異なる原因で発火します。

  1. POST ボディが post_max_size を超過 — PHP が WordPress 実行前にボディを破棄するため、$_POST から _wpnonce が消える。本記事で扱うケース。
  2. nonce の実際の期限切れ — フォームを24時間以上開いたままにした場合(WordPress のデフォルト nonce 有効期限)。
  3. 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 までご連絡ください。