web-dev-qa-db-ja.com

特定のページに特定のメニューを追加する方法

プラグインのない特定のページに特定のメニューを追加する方法についてのヘルプを探しています。

次のような新しいメニューを追加して登録する方法を知っています。

//* Register third navigation menu position
function register_additional_menu() {
  register_nav_menu( 'third-menu' ,__( 'Third Navigation Menu' ));
}
add_action( 'init', 'register_additional_menu' );
add_action( 'genesis_before_content', 'add_third_nav_genesis' );

function add_third_nav_genesis() {
    echo'<div class="osastot-valikko">';
    wp_nav_menu( array( 'theme_location' => 'third-menu', 'container_class' => 'genesis-nav-menu js-superfish sf-js-enabled sf-arrows' ) );
    echo'</div>';
}

「Extra Menu」という名前のナビゲーションメニューを3ページ(post = 6、post = 7、post = 8)にのみ表示したいと思います。 function.phpに何を書くべきですか

ありがとう!

1

ページは特定のテンプレートを持つことができるので、新しいテンプレートを作成してメニューを追加するだけです。

テーマのpages.php(これはデフォルトのページテンプレート)のコードをコピーし、新しいファイル(「template-page-with-menu.php」など)に貼り付けることができます。コードの上部に、テンプレート名を追加する必要があります。

<?php /* Template Name: Page with Menu */ ?>

次に、必要なページでこのテンプレートを選択します。

enter image description here

1
Saulo Padilha

条件文を使用してみてください:

function add_third_nav_genesis() {
    if( is_page( array( 6, 7, 8 ) ) ) {
        echo'<div class="osastot-valikko">';
        wp_nav_menu( array( 'theme_location' => 'third-menu', 'container_class' => 'genesis-nav-menu js-superfish sf-js-enabled sf-arrows' ) );
        echo'</div>';
    }
}

https://developer.wordpress.org/reference/functions/is_page/

1
Michael