Display Widgets - 페이지/카테고리별로 위젯 표시하거나 숨기기

[워드프레스] 페이지별로 다른 메뉴 항목/위젯/사이드바 표시하기

페이지별로 다른 메뉴 항목 표시하기

페이지마다 메뉴 항목을 달리 하여 표시하려면 Page Specific Menu Items 플러그인을 사용할 수 있습니다. 플러그인을 설치한 후에 설정 > PS MenuItems를 눌러 “Post Specific Menu Items Settings”(메뉴 항목별 글 설정) 페이지에서 메뉴를 달리 표시할 글 유형을 선택할 수 있습니다.

워드프레스 페이지별로 다른 메뉴 항목 표시하기

기본적으로 Page가 선택되어 있으며, Post나 다른 Custom Post Type(사용자 정의 글 유형)를 선택할 수도 있습니다. 예를 들어, Post를 선택하면 개별 글마다 메뉴 항목을 다르게 표시할 수 있게 됩니다. 이외에 사용 중인 워드프레스 테마에서 포트폴리오(Portfolio) 등의 커스텀 포스트 타입을 이용하는 경우 커스텀 포스트 타입도 선택이 가능합니다. 그리고 조정할 메뉴도 “Select Menu” 옵션에서 지정할 수 있습니다.

예를 들어, 위와 같이 Page와 Post를 선택하면 개별 페이지나 글을 편집하거나 새로 작성할 때 메뉴 항목 표시 여부를 지정할 수 있습니다.

워드프레스에서 페이지별 메뉴 지정페이지/글 편집 화면의 오른쪽 상단에 위와 비슷한 화면(선택한 메뉴와 해당 메뉴에 포함된 메뉴 항목에 따라 화면이 달라집니다)이 표시됩니다. 녹색 부분의 의미는 “이 페이지에서 숨기고자 하는 메뉴 항목을 선택하십시오. 최상위 레벨의 메뉴 항목은 굵은 글씨체로 표시되어 있습니다.“입니다. 따라서 위와 같은 화면에서는 표시하지 않을 메뉴 항목을 체크하면 됩니다.

이와 같이 Page Specific Menu Items 플러그인을 사용하면 복잡한 코딩 작업이 쉽게 페이지별로 원하는 메뉴 항목을 표시하거나 숨길 수 있습니다.

Different Menu in Different Pages 플러그인

Different Menu in Different Pages는 위의 무료 플러그인에 보다 보다 효율적으로 페이지별로 다른 메뉴를 지정할 수 있는 플러그인입니다.

Different Menu in Different Pages위의 그림과 같이 포스트, 페이지, 카테고리, 태그 , 사용자 지정 분류 및 모든 곳에 여러 개의 메뉴 및 메뉴 위치를 만들어 사용할 수 있습니다.

주요 특징:

  • 모든 포스트 및 페이지 지원
  • 카테고리, 태그, 사용자 지정 분류(Custom Taxonomy) 지원
  • 사용자 정의 글 유형(커스텀 포스트 타입) 지원
  • 우커머스(WooCommerce) 호환
  • 다국어 플러그인 WPML 호환(WPML은 한 사이트에 영어, 일어, 중국어 등 여러 버전을 운영할 때 가장 많이 사용되는 플러그인입니다.)
  • bbPress 호환
  • BuddyPress 호환

사용자 평점도 4.63(5점 만점)으로 괜찮은 편이고 다양한 종류의 글/페이지/카테고리 등 거의 모든 페이지에 사용이 가능한 유용한 플러그인입니다.

페이지/카테고리별로 다른 위젯 표시하기

페이지/카테고리별로 혹은 권한별로 위젯을 표시하거나 숨겨야 하는 경우가 많이 발생합니다. 이 경우에도 플러그인을 사용하여 쉽게 구현이 가능합니다. 우선 시각적인 UI를 선호한다면 Display Widgets라는 위젯을 사용할 수 있습니다.

Display Widgets - 페이지/카테고리별로 위젯 표시하거나 숨기기

이 플러그인을 설치하면 개별 위젯에 위와 같은 옵션 상자가 표시됩니다. “Show on checked pages“(체크된 페이지에 표시)를 선택할 경우 체크하는 페이지에만 해당 위젯이 표시됩니다. “Hide on checked pages“(체크된 페이지에서 숨김)를 선택하면 체크하는 페이지에서만 해당 위젯이 표시되지 않습니다. 이처럼 Display Widgets은 시각적인 인터페이스를 제공하므로 누구나 쉽게 사용할 수 있습니다.

개인적으로는 Display Widgets을 사용하지 않습니다. 그 이유는 사용하는 테마에서 이 플러그인이 사이트 성능(속도)에 좋지 않은 영향을 미치기 때문입니다(참고). 설치하여 사용해보시고, 만약 사이트 속도를 떨어뜨린다고 생각되면 Widget Logic이라는 플러그인을 사용해볼 수 있습니다.

Widget Logic 플러그인은 Display Widgets과 거의 동일한 기능을 제공하지만 코드를 직접 추가해야 하는 번거로움이 있습니다. 따라서 PHP에 익숙하지 않은 경우 Display Widgets을 사용하시기 바랍니다. Widget Logic 플러그인을 설치하고 활성화하면 위젯 메뉴에서 개별 위젯의 하단에 Widget Logic이라는 글자와 함께 박스가 추가됩니다.

워드프레스 - 페이지마다 위젯 표시 설정하기Widget Logic 상자에 해당 위젯이 표시되는 조건을 지정할 수 있습니다. 가령 “cheese” 카테고리에만 해당 위젯을 표시하고자 하는 경우:

is_single() && in_category('cheese')

위와 같은 조건문을 Widget Logic 박스에 추가하면 됩니다. 자세한 내용은 WordPress Codex의 “Conditional Tags” 페이지를 참고하시기 바랍니다. 워드프레스에서 사용되는 조건식을 아는 경우 이 플러그인이 간편하고 매우 강력한 기능을 합니다.

페이지/카테고리별로 다른 사이드바 표시하기

SMK Sidebar Generator 플러그인은 원하는 수의 사이드바를 생성하여 원하는 페이지에 배치할 수 있습니다. 예를 들어 기본 사이드바가 다음과 같은 코드로 배치되어 있다면:

<?php dynamic_sidebar( 'sidebar-1' ); ?>

SMK Sidebar Generator 플러그인을 사용하여 사이드바를 원하는 대로 생성한 후에, 위의 코드를 아래와 같이 수정해줄 수 있습니다.

<?php if (is_category('1')) { ?>
<?php dynamic_sidebar( 'sidebar-2' ); ?>
<?php }elseif (is_category('2')) { ?>
<?php dynamic_sidebar( 'sidebar-3' ); ?>
<?php }else{
dynamic_sidebar( 'sidebar-1' );
?>
<?php } ?>

sidebar-2와 sidebar-3는 카피한 사이드바의 ID입니다. 조건을 원하는 대로 수정하면 됩니다.

참고:



기부를 통해 이 블로그를 후원하실 수 있습니다.
워드프레스 설치/제작/문제해결이 필요한 경우 서비스(유료)를 요청해주세요.