WordPressで「nonce_failure」が発生したときの対処方法

function.phpを編集して「ファイルを更新」をクリックすると、「nonce_failure」というエラーが発生。調べてみました。

結論からいうと

ページをリロードすると、問題なくファイルを更新できました。

nonceとは

本来は、セキュリティ用途で1回だけ使用される数値やビット文字列の事。

でも、WordPressの場合、有効期間中に特定のユーザーの特定のコンテキストに対して、同じnonceが生成される。本来のnonceとは違うけど、目的が同じなのでnonceと呼ばれています。

https://codex.wordpress.org/WordPress_Nonces

というわけで

nonce対策が不十分なテーマやプラグインが原因で、発生する場合もあるようです。

僕の場合は、リロードしたら改善したので、function.phpの編集画面を開いたまま、1日以上放置していたのが原因と思われます。

ただ、上のwordpress.orgの説明によると、

http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204

のようにnonceが発行されるらしいけど、編集画面のアドレスにそのような値はないです。

…とりあえず、改善したので、よしとします。