register_nav_menus()のスラッグ名で整数が使えなくなりました。個人的には『使う人がいたのか?』と思いましたが、使っているととんでもないバグが発生していたようです。
配列の要素の意味を考えずに、とりあえず数値を入れるプログラミングをしているとバグになっていた模様。
開発者向けの話です。テーマ・プラグインを作っている人は要チェック。
register_nav_menus()は何?
メニューの作成には2つあります。ひとつは、
メニューの中に何を入れるのか?
を設定するもの。もうひとつは、
メニューをどこに入れるのか?
を設定するもの。register_nav_menus()は『どこに入れるか?』を設定する関数です。
<?php
register_nav_menus( [
'top_menu' => 'トップメニュー',
'footer_menu' => 'フッターメニュー',
] );
管理画面では、『外観』->『メニュー』の位置の設定になります。
整数の配列キーはバグ
register_nav_menus()で指定するパラメータは$locationsで配列です。ただ、配列のキーに整数を指定すると、内部で配列の値が変わります。
<?php
register_nav_menus( [
'primary' => 'Primary',
1 => 'First',
2 => 'Second',
] );
array(
'primary' => 'Primary',
0 => 'First',
1 => 'Second',
)
『なんでこうなるんだ?』と思いますが、関数の内部でarray_merge()を使っているから。
WP5.3からキーに整数を使うと_doing_it_wrong()でログに警告が出ます。ログで確認して出ないようにしましょう。
そもそも、リファレンスのサンプルで整数を使ってないので、わざわざ整数値を使う人はあまりいないと思いますが。
WordPress Codex 日本語 - register_nav_menus
WordPress.orgリファレンス - register_nav_menus
公式ガイド
Integer menu slugs are no longer supported from WordPress 5.3