特定のページのみにメニューを表示するにはどうすればよいですか?


10

サイドバーウィジェットを使用して、どのページに表示するかを指示する代わりに、特定のページに表示されるメニュー設定を選択します。

デフォルトのWordpressの方法:

デフォルトの外観

したがって、プロジェクトはページであり、いくつかのサブページがあります。しかし、同じ状況のこれらのページとサブページがさらに10個あるとしたらどうでしょう。

追加の設定(トップレベルのページのリスト)を追加したいと思います。

設定が欲しいところ

しかし、これらの設定が読み込まれると、ドキュメント、アクション、フィルターなどが見つかりません。


テーマ次第だと思います。しかし、出発点としてcodex.wordpress.org/Navigation_Menusが役立つはずです!!
sri

1
そのリンクを何度も見ましたが、メニューに設定を追加することに関する情報はありません。カスタムメニューのみを作成して表示する

痛い。これはネイティブのJoomlaオプションだと思います。WordPressにはないようです。あなたのサイトの場合、カスタム出力category / pages.phpファイルを作成し、そこにユニークなカスタムメニューを追加することができますが、それは非常に面倒です。上記の選択ごとに1つずつ、4つの出力.phpページと4つの固有のメニューがあります。実装する簡単な方法の1つは、サイドバーウィジェットを主要なナビゲーションツールとして使用することです。カスタムメニューウィジェットツールは非常にシンプルです。各ページに固有のテンプレートがあると仮定して、各ページのメニューを作成します。サイドバーは最高の言葉ではないことに注意してください。ウィジェットはどこにでも配置できます。
zipzit 2014年

サイドバーとウィジェットを知っています。ページに接続されていないこれらの小さなWebサイトパーツ。サイドバーやウィジェットを使用したくないので、使用していないため、それらを無効にしました。とにかく、メニューの場所はメニューの設定であり、メニューを含むウィジェットの設定ではないと思います。

あなたの質問は、「カスタムメニュー設定を追加するにはどうすればよいですか?」それとも「カスタムメニュー設定を使用して、特定のページのみにメニューを表示するにはどうすればよいですか?」
engelen 14年

回答:


3

それはいいオプションですが、私はsriに同意します。今のところ、それは本当にあなたのテーマに依存しています。あなたはを通して回避策を行うことができます)(is_page。あなたはあなたのpage.phpテーマファイルにこのような何かを書く必要があります:

<?php
    if (is_page('projects')) {
        if ( is_active_sidebar( 'sidebar-navigation' )) {
            dynamic_sidebar( 'sidebar-navigation' );
        }
    }
?>

あなたが同様に他のページのサイドバーを表示したい場合は、ロジックを使用することができます、このように:

if (is_page('projects') || is_page('home') || is_page('post-page'))

私はもっ​​と良い解決策を知りませんが、これはコーディングの世界では本当に悪い習慣です。少なくとも、配列または何かをループしてからメニュースワップを実行することを考えています。答えは間違いなくありがたいです。ため息
ブロジャーズ2016

1

これにはプラグインを使うほうがいいと思うので、将来テーマを変更しても機能を維持できます。このプラグインをチェックしてください。それはあなたが望んでいることをしますが、それをモックアップした方法とは少し異なります。

https://wordpress.org/plugins/page-specific-menu-items/

これが役立つ場合は、賛成票を投じるか、答えとして受け入れてください。ありがとう!


私はこのプラグインを試しました。このプラグインを使用すると、特定の投稿タイプのメニューのみを選択できます。各ページのメニューを選択したい。

サイト全体でメニューが1つしかなく、ユーザーが特定のページにいるときにそのメニューの特定のリンクを非表示にしたい場合、このプラグインはそれを行います。メニューを表示したい投稿タイプ(ページはあなたが欲しいもの、またはそれ以上)を選択したら、ページを編集し、非表示にするリンクを確認できます。これは反対の方法です。あなたの中から選択する複数のメニューを必要とするので、あなたは、編集ページ画面上metaboxからメニューを選択します。 wordpress.org/plugins/ce-wp-menu-per-page
Mark.C

1

これは、子テーマにコピーされたTwenty Twelveのテーマheader.phpで行う方法です。

<?php if ( is_page('projects') ) : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'conditional-menu-name', 'menu_class' => 'nav-menu' ) ); ?>
<?php else : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'Primary', 'menu_class' => 'nav-menu' ) ); ?>
<?php endif; ?>

表示するアイテムを含む新しいメニューを作成し、上記のコードのconditional-menu-nameをメニューの名前に置き換えます。

Twenty Twelve以外のテーマでは、menu_class名を変更する必要がある場合があります。

ソース


1

私はこのスレッドが古いことを知っていますが、誰かがこの答えを検索する必要がある場合に備えて、それらの条件付きメニューhttps://themify.me/conditional-menusを提案したいと思います。ページごと、カテゴリごと、メタごとなど、使用するメニューを選択します。そしてそれは無料です:)これが役に立てば幸い


0

ウィジェットを再利用して、簡単なソリューションが必要な場合は、ディスプレイウィジェットと呼ばれるプラグインを使用できます。私はこれを使用し、行きたい場所へのリンクを追加できるテキスト部分を使用しました。リンクが自分のサイトにあるか、別のサイトにあるかに関係なく機能します。テキストの下にスペースがあり、表示または非表示にするページを選択できます。使用していないウィジェットは削除できます。

このプラグインを探して見つける前に、かなり長い間メニューをいじっていました。それはうまくいきます。

WordPress.orgのPluginsセクションにあります。


どうもありがとうございました!しかし、私は追加のプラグインを探していません。また、これらのフローティングWebサイトパーツは一部の顧客にとって理解が難しいため、ウィジェットは使用しません。

0

1つのオプションは、メニューごとにカスタムテンプレートを作成することです。(これはテーマの場所のチェックボックスを指します)次に、すべてのページで、使用するテンプレートを選択すると、そのテンプレートに関連付けられているメニューも使用されます。

https://codex.wordpress.org/Page_Templates

あなたが探しているのと同じ結果が得られますが、各メニューにどのページが表示されるかを伝えるのではなく、どのページに表示するかを各ページに伝えます。この方法で追加する利点は、2つのメニューが同時に同じ場所にあると誤って指示する方法がないことです。


はい、これを見てきました。しかし、開発者はユーザーが必要とするメニューの数を決して知りません。そのため、すべてをカバーするためにたくさんのテンプレートを作成する必要があります。template_a.phptemplate_b.phptemplate_c.phpなど

-1

Menu Swapperプラグインを使用して、管理パネルから同じことを行うことができます。これがこのプラグインのデモです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.