MyClass::start_lvl() should be compatible with that of Walker_Nav_Menu::start_lvl()

wordpressでエラー表示されたので対応をまとめておく。

最初はここを探したが、回答どおり記載している

PHPの7.0からの問題らしい wordpress.stackexchange.com

日本語版がここ サーバーのphpを7.0にした際に出る【Warning: Declaration of My_Walker::start_el〜】の対処方法 | oku-log

次に custom post typeUI プラグインを疑う。

理由は、このプラグインで作成したページのみ、パーマリンクがおかしく表示しなくなるので

custom post type uiプラグイン使用時で404になる時の注意と改善策 | HIROCREATE

リライトをfalseにするも、ページが=?_~の形式で表示される。クエリを投げているかのような表示となる。
SEO上よくないので、他を探していたら、ここを発見。

解決法

ここの 設定->パーマリンク設定で、再度設定ボタンを押すと解決!

WordPressカスタム投稿タイプのパーマリンク設定とカスタマイズ | memocarilog

rewriteを表示すると、パーマリンクを再度設定しないといけない。

何も変更していなくても、更新する必要がある。

でrewriteとは何かについて、考察する

パーマリンク設定を変更する際、Rewrite APIが動いている。 WEBサーバーがApachの場合、.htaccessにより、urlを決定している。 こんなやつ

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

これは何をしているかというと、リダイレクトではなく、WordPressのテンプレート階層を決定しているようだ。

カスタム投稿タイプを設定するときに、Rewrite APIにアクセスし、WordPressのルーティングのようなものを決定している。 //ここあやふやですみません。

よって、パーマリンクも更新する必要があるようだ。 //これもあやふや。

ここのサイトが、とても良い!

参考にさせていただきました。

nskw-style.com

functions.phpへ追記。CPTプラグインを非表示へ

        remove_menu_page('cptui_main_menu');//CPT