質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1667閲覧

【WordPress】2階層のメガメニューを実装したい

hjkkk

総合スコア3

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/12/14 07:14

前提・実現したいこと

やりたいこと:ヘッダーメニューに2階層、もしくは2段のメガドロップメニューを作成したい。

試したこと

現在WordPressのEmanon Premiumテーマを使用してホームページを作っておりますが、その際にヘッダーメニューにMaxMegaMenuというプラグインを使用してメガドロワーメニュー化しました。
しかしカテゴリーが11個もあり、とても1行には入りません。
そこでメニュー自体を2段にするか、もしくは取扱製品>製品カテゴリー>実際の製品 のように2階層にできないでしょうか?
この目的を達成できるなら特にMaxMegaMenuの使用にはこだわりません。
よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
MaxMegaMenu バージョン2.9.5
WordPress バージョン5.8.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

メニューsubを2行に表記する方法
メニューsubのmax-widthを制限した上で文字数をわざと多くすることでオーバーフローさせると2行になる。
そのままだと全体が左詰めになって右側に大きく空欄が開いてしまうので同時にmarginをautoとつけることで中央寄せすることができる。
megamenu.scssの中の38行目と42行目をいじればよい
変更後:
38行目:margin: 0 auto;
42行目:max-width: 920px;

ただし課題もある。現在使用している環境ではMaxMegaMenu自体のカスタムCSSを編集しようとしても反映されない。
これを今後解決する必要がある

※追記
プラグインでVK All in One Expansion Unitを導入
ExUnitのCSSカスタマイズで

.mega-menu-wrap {
margin: 0 auto !important;
max-width: 890px !important;
}

と入力して読み込ませることでメニュー部分の幅を890ピクセルに制限した上で文字数をオーバーフローさせることで2行とした。
また、マージンをオートとしたことで両サイドの背景デザインを制御した

投稿2021/12/20 06:51

編集2021/12/24 08:34
hjkkk

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

公式ドキュメントに記事があるようです。

How to display menu items over multiple lines – Max Mega Menu

投稿2021/12/15 01:26

Lhankor_Mhy

総合スコア36104

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hjkkk

2021/12/15 07:02 編集

紹介してくださったページに沿ってメガメニューにCSSを追加したのですが、外観>メニューで2段目に移したい項目の前にMenu<br /> Itemsの項目を追加してCSS欄にmulti-lineを入力したところ Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 という記述が出現し、そしてメガメニュー自体は別に二段化されてませんでした テーマのcssカスタマイズ機能と競合してしまってるということでしょうか?
Lhankor_Mhy

2021/12/15 06:59

詳しくないですが、「To increase the limit change max_input_vars in php.ini」でググったらいろいろ出てきましたね。
hjkkk

2021/12/15 07:55 編集

php.iniを編集して上限2000にして実行したところうまく行きましたけどこれ求めていた機能とは違いますね これを実行した結果は一つのメニュー項目がそのブロックの中で改行できるようになるだけみたいです /ニュース・イベント/ が /ニュース イベント/ になるだけのようで、求めていたものとは違ってますね… /ホーム/概要/アクセス/ニュース・イベント/リンク/ ってのを /ホーム/概要/アクセス/ /ニュース・イベント/リンク/ みたいな感じに改行しようとしてました
hjkkk

2021/12/15 08:27 編集

どうもそちらは展開後のメニュー配列の見た目並び替えのものの様でして 特定のブロックの4行×1列のものを2行×2列にすることができて、かつほかのブロックのメニューは従来通り4行×1列の状態を維持するものの様です ただいろいろ見たところですと、メニューの表示項目数を意図的に増やして折り返しさせることで親メニューを2行にすることができるみたいですね とはいえこちらもウィンドウの幅が変化すると折り返す地点が変化して見栄え的に安定しないという欠点があるようですが… 展開したメニューを多層化することはできませんでしたが処理量削減の観点からするとこっちのがいいのかな…? せめて親メニューの全体のピクセル幅を固定できればいいんですけどねぇ…
Lhankor_Mhy

2021/12/16 01:31

あまりお役に立てずにすみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問