WordPressのメニューに妙な文字

wordpress+Cocoonテンプレートでメニューに変な文字が出る現象 WEB制作

WordPress+Cocoonのテンプレート案件でヘッドメニューに妙な文字が表示される現象が起きたので記録しておきます。2025年10月6日現時点で解決はしていますが原因不明な状態は続いているので引き続き調査が必要な案件です。
(→2025年12月原因判明しました

現象

上部アイキャッチ画像にあるとおりで「活動報告」というカテゴリリンクに対して「活動報告」という文字が追記されています。(赤枠)

「写真」というのもカテゴリですがこちらには表示されていません。

結論(解決策)

例によって結論からいきますがカテゴリを一度削除して作り直すことで解決しました。

カテゴリを削除して作り直せば解決

検証

解決したとはいえ気持ち悪すぎますのでどこに記録された情報が表示されていたのか検証してみることにします。

まず思いつくのは単純にtermのnameがそのまま表示されている可能性。

だとすれば「活動報告」を「活動報告2」に変えれば同時に変更されるはずです。

カテゴリ名を変えてみる
カテゴリのメニューの下の文字は変わらない

変わらないですね。どこか違うところにデータを持っているようです。

では、カテゴリの設定のほうでなにか設定が入っているのでしょうか。
たしかに一度「説明」の項目に記述した気がしますが、いまは消してあるはずです。いま一度確認してみます。

カテゴリ設定画面
カテゴリ設定画面2

「名前」以外は間違いなく空欄になってますね。そしてこの「名前」が表示されているのではないというのも先ほど確認できています。

データベースで確認してみます。

wordpressカテゴリ名(termsテーブル)

termsテーブルにもnameカラム以外の日本語入力はありません。

メニューの設定を検証

カテゴリのデータとして持っていないのであれば、メニュー項目専用のデータとしてどこかで付与してしまった可能性が考えられますので「外観」から「メニュー」を確認してみます。

「ナビゲーションラベル」は「名前」をオーバーライドするだけなので、そのほかに設定できる項目が見当たらない以上はここでの設定でもなさそうです。実際変更してみましたが上部の表示文字が変わるだけで二行目の謎の文字は「活動報告」のままでした。頑固なやつ。

原因不明(2025.10.6)

ということで「結論」で申し上げたとおり、解決するには一度カテゴリを削除して作り直すという手順になるわけですが、こういうのは正直困りますね。フレームワーク使っているとあるあるですけど「なんだか知らないけどこうやったら直る」のままだと業務対応していく上では少々問題だと思います。

というわけでこの件に関してはひきつづき時間をみて検証していきたいと思います。

そもそも「ナビゲーションラベル」に記述した内容もどこに保存されているのか確認したことがなかったのでこの機会に調査しておくと今後の業務にも活かせそうです。

原因判明(2025.12.11)

別サイトで同様の事案が発生して原因判明したので報告です。

wordpressのテーマにもよりますが、そもそもメニューにサブ項目(説明文)を表示するという項目があります。今回一度もオンにした覚えのない機能ですが試しにこちらをオンにしてみました。

ここにいました。カテゴリ登録の際に一度追加してその後削除したはずの「説明」の項目です。


カテゴリの方では削除して保存・更新しているはずなのですが、一度設定してあったものが裏で残ってしまっていたようです。説明文を表示する設定にしていなかったのにカテゴリ説明がメニュー説明に勝手に登録されて表示されてしまっていたのはテーマ側のバグと思われますが、改めて表示すればメニューの編集項目で直接削除できますので、これを削除して保存しなおせば解決です。
あとはサブ項目不要なら改めて「表示オプション」から「説明」の表示をオフにしておきましょう。

余談

というわけでわかってしまえばなんてことはないのですが、勝手にテキストデータを保持してしかも勝手に表示するという動きをされるとこうしたCMSやフレームワークの利用者側としては困りますね。今回も「カテゴリ」の説明としてしか設定していないはずのものが自動的にメニュー用説明にコピーされて保持されていた(しかも見えない状態で)ということでしたので混乱しました。

データベース内にメニュー項目の説明テキストを別途保持している様子もないのですが、一度コピーされて保持されてしまうとカテゴリの方で書き換えても上書きされず残留するようなので注意が必要です。

なお、表示の仕組みとしてはJSで直接メニュー項目内にサブメニュー用の要素が追加されることになります。

ひとつ上の項目「行事予定」には無いclass「itemu-description sub-caption」のdiv要素が追加されているのがわかります。「説明」がオンになっているかどうか、および説明テキストが存在するかどうかによって変化する項目だと思うのですが、今回「説明」表示をオフのままの状態でこちらが表示されていたわけなので不具合だと考えて問題ないと思います。

改めて解決方法

以上、見てきました通り現象としてはバグでしょうが、解決策は意外と簡単で

・一度該当のメニューの「表示メニューオプション」から「説明」をチェックして表示にする

・メニュー項目の編集に「説明」欄が出てくるので内容を削除(編集)して保存

これで完了です。

同様の事案でお困りの方のお役に立てれば幸いです。

コメント

タイトルとURLをコピーしました