web-dev-qa-db-ja.com

シングルレベルのメニューオプション?別の方法?

私はクライアントのためにTwenty-13の子テーマを開発しています。私のテーマには、functions.phpファイルを通して正しく登録された2番目のナビゲーションメニューが含まれています。

この2番目のナビゲーションメニューは、完全に正しく機能しています。

しかし、私のデザインの一部として、この2番目のナビゲーションメニューを「シングルレベル」メニューにしたいだけです。つまり、子やサブメニュー項目はありません。

このカスタムメニューの下にある適切なdisplay:none項目をターゲットとする.sub-menuを使用して、CSSで子メニュー項目の外観を削除することができます。

ただし、サブメニュー項目がレイアウトを壊すビジュアルの可能性を削除したにもかかわらず、管理者がそれらを作成しないようにしたいと思います。最初の場所。表示されていないことを確認するためだけにクライアントにサブメニュー項目を追加させたくはありません。他には何もないが、私は前から後ろに、より堅牢なテーマを作りたいと思います。

Google、SO、SE、およびWordpressサイトを検索しましたが、ダッシュボードからのサブメニュー項目の作成をブロックする方法を見つけることができません。どの検索用語を使用しても、反対の問題を抱えている人に関する投稿を見つけ続けるので...このサブメニューを作成する方法については、研究の問題は厄介です。

カスタムテーマオプション用のダッシュボードページがすでにあります。この1つのメニュー専用にメニュー編集画面をカスタマイズする方法はありますか?フック?シングルレベルメニューを強制するための別のアイデアは?

1
Sparky

私が望んでいたものとは正確には異なりますが、非常に近いです。

のようにwp_nav_menu()...のコーデックス .

$depth
(整数)(オプション)階層のレベルをいくつ含めるかを指定します。0はすべてを意味します。 -1はリンクを任意の深さで表示し、それらを単一のフラットリストに配置します。
デフォルト値:0

だから私はこれをした...

wp_nav_menu(
    array(
        'container_class' => 'menu-top-menu-container',
        'theme_location' => 'secondary',
        'depth' => -1 
    )
);

純粋な単一レベルを指定するために'depth' => 1を試しましたが、これはDashboardでのサブメニュー項目の作成を妨げるものではありません。最終結果は私のCSSハックと同じです。管理者は、彼の新しいサブメニュー項目が表示されない理由を知りません。

私は'depth' => -1を使いました。これはallメニュー項目を、作成されるサブメニュー項目も含めて単一レベルに強制します。少なくとも管理者は、自分のサブメニュー項目が他のものと同じレベルで表示されているのを見たときに、ここで何が起こっているのかに気付くはずです。

私は、コアのWordpressファイルを編集しなくても、ダッシュボードのメニュー編集画面を微調整するために何ができるかについてまだ興味がありません。

1
Sparky