특정 페이지에만 메뉴를 표시하려면 어떻게해야합니까?


10

사이드 바 위젯을 사용하여 표시 할 페이지를 알려주는 대신 메뉴 설정에서 특정 페이지에 표시되도록 선택하고 싶습니다.

기본 워드 프레스 방법 :

기본 설정 방법

따라서 프로젝트는 페이지이며 일부 하위 페이지가 있습니다. 그러나 동일한 상황에서 이러한 페이지와 하위 페이지를 10 개 더 좋아한다면 어떨까요?

추가 설정 (최상위 페이지 목록)을 추가하고 싶습니다.

설정을 원하는 곳

그러나 이러한 설정이로드되면 문서, 작업, 필터 등을 찾을 수 없습니다.


나는 그것이 당신의 주제에 달려 있다고 생각합니다. 그러나 출발점으로 codex.wordpress.org/Navigation_Menus 가 도움이 될 것입니다 !!
스리

1
링크가 여러 번 보 였는데 메뉴에 설정을 추가하는 방법에 대한 정보가 없습니다. 사용자 정의 메뉴 만 생성 및 표시 ...

아야. 나는 그것이 WordPress에는없는 기본 Joomla 옵션이라고 생각합니다. 사이트의 경우 사용자 정의 출력 category / pages.php 파일을 만든 다음 고유 한 사용자 정의 메뉴를 추가 할 수 있지만 목에 통증이 있습니다. 4 개의 출력 .php 페이지와 4 개의 고유 한 메뉴가 있습니다 (위의 각 선택에 대해 하나씩). 구현하기 쉬운 방법 중 하나는 사이드 바 위젯을 기본 탐색 도구로 사용하는 것입니다. 사용자 정의 메뉴 위젯 도구는 매우 간단합니다. 각 페이지마다 고유 한 템플릿이 있다고 가정하고 각 페이지의 메뉴를 만듭니다. 사이드 바가 가장 좋은 단어는 아닙니다. 어디에나 위젯을 둘 수 있습니다.
zipzit

사이드 바와 위젯을 알고 있습니다. 페이지에 연결되지 않은이 작은 웹 사이트 부분. 사이드 바와 위젯을 사용하고 싶지 않으며 사용하지 않기 때문에 비활성화했습니다. 어쨌든 메뉴 위치는 메뉴를 포함하는 위젯의 설정이 아니라 메뉴의 설정이라고 생각합니다.

귀하의 질문은 "사용자 정의 메뉴 설정을 어떻게 추가합니까?"입니까? 또는 "사용자 정의 메뉴 설정을 사용하여 특정 페이지에만 메뉴를 표시하는 방법"입니까?
engelen 2016 년

답변:


3

좋은 선택이지만 스리랑 동의하는데 지금은 테마에 따라 다릅니다. 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'))

나는 더 나은 해결책을 모른다. 그러나 이것은 코딩 세계에서 실제로 나쁜 습관이다. 나는 적어도 배열이나 무언가를 통해 루프를 돌린 다음 메뉴 스왑을 수행한다고 생각합니다. 그래도 대답을 분명히 감사드립니다. 한숨
BRogers

1

플러그인을 사용하는 것이 더 낫다고 생각하므로 나중에 테마를 변경하더라도 기능을 유지할 수 있습니다. 이 플러그인을 확인하십시오. 그것은 당신이 원하는 것을하지만, 당신이 그것을 조롱하는 방법과 약간 다릅니다.

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

도움이 될 경우 투표를하거나 답변으로 수락하십시오. 감사!


이 플러그인을 사용해 보았습니다. 이 플러그인을 사용하면 특정 게시물 유형에 대한 메뉴 만 선택할 수 있습니다. 각 페이지의 메뉴를 선택하고 싶습니다.

사이트 전체에 메뉴가 하나만 있고 사용자가 특정 페이지에있을 때 해당 메뉴에서 특정 링크를 숨기려면이 플러그인이이를 수행합니다. 메뉴에서 원하는 게시물 유형을 선택한 후 (페이지가 원하는 것 이상) 페이지를 편집하여 숨겨진 링크를 확인할 수 있습니다. 다른 하나는 반대 방향으로 수행합니다. 페이지 편집 화면의 메타 박스에서 메뉴를 선택하므로 다음 중에서 선택할 수있는 여러 메뉴가 필요합니다. wordpress.org/plugins/ce-wp-menu-per-page
Mark.C

1

이것은 당신이 그것을 할 수있는 방법 스물 열두 테마 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; ?>

표시하려는 항목으로 새 메뉴를 만들고 위 코드에서 조건부 메뉴 이름을 메뉴 이름으로 바꿉니다.

menu_class 이름은 Twenty Twelve 이외의 테마에서 변경해야 할 수도 있습니다.

출처


1

나는이 스레드가 오래되었다는 것을 알고 있지만 누군가이 답변을 검색 해야하는 경우 https://themify.me/conditional-menus 에서 조건부 메뉴를 제안하고 싶습니다 . 페이지, 카테고리, 메타 등 모든 메뉴를 사용할 수 있습니다. 그리고 그것은 무료입니다 :) 이것이 도움이되기를 바랍니다.


0

위젯을 다시 사용하고 간단한 솔루션을 원한다면 Display Widgets라는 플러그인을 사용할 수 있습니다. 나는 이것을 사용하고 가고 싶은 곳에 링크를 추가 할 수있는 텍스트 부분을 사용했다. 링크가 자신의 사이트에 있는지 또는 다른 사이트에 있는지에 관계없이 작동합니다. 텍스트 아래에 공백이있어서 표시하거나 숨길 페이지를 선택할 수 있습니다. 사용하지 않는 위젯을 계속 제거 할 수 있습니다.

이 플러그인을 찾아서 찾기 전에 메뉴를 가지고 놀았습니다. 잘 작동한다.

WordPress.org의 플러그인 섹션에서 찾을 수 있습니다.


대단히 감사합니다! 그러나 추가 플러그인을 찾고 있지 않습니다. 이 부동 웹 사이트 부분은 일부 고객에게는 이해하기 어렵 기 때문에 위젯을 사용하지 않습니다.

0

하나의 옵션은 가지고있는 각 메뉴에 대해 사용자 정의 템플릿을 만드는 것입니다. (테마 위치 확인란을 나타냅니다) 그런 다음 모든 페이지에서 사용할 템플릿을 선택하면 해당 템플릿과 관련된 메뉴도 사용됩니다.

https://codex.wordpress.org/Page_Templates

그것은 당신이 찾고 있다고 생각하는 것과 동일한 결과를 제공하지만 각 메뉴에 표시되는 페이지를 알려주는 대신 각 페이지에 어떤 메뉴가 표시되는지 알려줍니다. 이 방법으로 추가로 얻을 수있는 또 다른 이점은 실수로 두 개의 메뉴를 동시에 같은 위치에 놓을 수있는 방법이 없다는 것입니다.


예, 나는 이것을 보았다. 그러나 개발자는 사용자에게 필요한 메뉴 수를 모릅니다. 따라서 모든 템플릿을 다루기 위해 많은 템플릿을 만들어야합니다. template_a.php, template_b.php, template_c.php

-1

관리자 패널에서 동일한 작업을 수행 하기 위해 Menu Swapper 플러그인을 사용할 수 있습니다 . 이 플러그인 의 데모 는 다음과 같습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.