WordPress의 게시물 및 페이지에 대해 다른 사이드바를 표시하는 방법
게시 됨: 2023-02-16기본적으로 WordPress는 모든 게시물과 페이지에 동일한 사이드바를 표시합니다. 그러나 때로는 가장 중요한 게시물 또는 전체 게시물 카테고리와 관련된 사이드바 항목에 대해 완전히 다른 사이드바를 표시하고 싶을 수 있습니다. 어떻게 하는지 궁금하셨다면 잘 오셨습니다!
이 기사에서는 수동으로 그리고 WordPress 플러그인을 사용하여 다른 게시물 또는 페이지에 대한 고유한 사이드바를 만드는 방법을 보여줍니다. 하지만 먼저 왜 이 작업을 수행해야 하는지에 대해 자세히 이야기해 보겠습니다.
다른 사이드바가 필요한 이유
앞서 언급했듯이 블로그에 많은 카테고리가 있는 경우 해당 주제와 유사한 제안, 광고 또는 제품이 포함된 사이드바를 갖고 싶을 수 있습니다. 또는 각 페이지의 대상에 맞게 조정된 "회사 소개" 사이드바에서 귀하의 비즈니스에 대해 이야기하고 싶을 수도 있습니다.
이러한 유형의 상황에서는 고유한 사이드바를 원할 것입니다. 직접 만들거나 WordPress 플러그인을 사용하여 수동으로 만들 수 있는 두 가지 방법이 있습니다.
먼저 수동 방법을 다루겠습니다.
새 WordPress 사이드바를 수동으로 만드는 방법
새 사이드바를 수동으로 만들려면 이상적으로는 로컬 환경에서 자식 테마를 사용해야 합니다. 우리는 이미 271 테마용으로 하나를 만들었지만 모든 테마에 대해 동일한 프로세스를 따를 수 있습니다.
먼저 테마에 사이드바가 등록된 파일을 찾습니다. 일반적으로 functions.php 파일이지만 테마에 따라 다를 수 있습니다.
파일을 열고 사이드바 코드에 대한 함수를 찾습니다. 일반적으로 register_sidebar
로 구성되며 전체 기능은 다음과 같습니다.
[php]
함수 27teen_widgets_init() {
register_sidebar(
정렬(
'이름' => __( '블로그 사이드바', 'twentyseventeen' ),
'id' => '사이드바-1',
'description' => __( '여기에 위젯을 추가하여 블로그 게시물 및 보관 페이지의 사이드바에 표시하세요.', 'twentyseventeen' ),
'before_widget' => '<섹션 id=”%1$s” 클래스=”위젯 %2$s”>',
'after_widget' => '</섹션>',
'before_title' => '<h2 class=”widget-title”>',
'after_title' => '</h2>',
)
);
register_sidebar(
정렬(
'name' => __( '바닥글 1', 'twentyseventeen' ),
'id' => '사이드바-2',
'description' => __( '바닥글에 표시할 위젯을 여기에 추가하세요.', 'twentyseventeen' ),
'before_widget' => '<섹션 id=”%1$s” 클래스=”위젯 %2$s”>',
'after_widget' => '</섹션>',
'before_title' => '<h2 class=”widget-title”>',
'after_title' => '</h2>',
)
);
register_sidebar(
정렬(
'이름' => __( '바닥글 2', 'twentyseventeen' ),
'id' => '사이드바-3',
'description' => __( '바닥글에 표시할 위젯을 여기에 추가하세요.', 'twentyseventeen' ),
'before_widget' => '<섹션 id=”%1$s” 클래스=”위젯 %2$s”>',
'after_widget' => '</섹션>',
'before_title' => '<h2 class=”widget-title”>',
'after_title' => '</h2>',
)
);
}
add_action( 'widgets_init', 'twentyseventeen_widgets_init' );
[/php]
이제 전체 함수를 복사하고 하위 테마에 functions.php 파일을 만들고(아직 없는 경우) 코드를 붙여넣습니다. 함수 이름을 변경했는지 확인하십시오.
생성해야 하는 추가 사이드바 수에 따라 동일한 코드를 복제하고 각 사이드바에 고유한 ID를 할당할 수 있습니다. 또한 이름과 설명을 각각 고유하게 변경해야 합니다. 여기에서 두 개의 새로운 사이드바를 만들었습니다.
[php]
함수 27teen_new_widgets_init() {
register_sidebar(
정렬(
'name' => __( 'WordPress 사이드바', 'twentyseventeen' ),
'id' => '사이드바-4',
'description' => __( '여기에 워드프레스 관련 블로그 게시물의 사이드바에 위젯을 추가하세요.', 'twentyseventeen' ),
'before_widget' => '<섹션 id=”%1$s” 클래스=”위젯 %2$s”>',
'after_widget' => '</섹션>',
'before_title' => '<h2 class=”widget-title”>',
'after_title' => '</h2>',
)
);
register_sidebar(
정렬(
'이름' => __( '웹 디자인 사이드바', 'twentyseventeen' ),
'id' => '사이드바-5',
'description' => __( '여기에 위젯을 추가하면 웹 디자인 관련 블로그 게시물의 사이드바에 표시됩니다.', 'twentyseventeen' ),
'before_widget' => '<섹션 id=”%1$s” 클래스=”위젯 %2$s”>',
'after_widget' => '</섹션>',
'before_title' => '<h2 class=”widget-title”>',
'after_title' => '</h2>',
)
);
}
add_action( 'widgets_init', 'twentyseventeen_new_widgets_init' );
[/php]
새로운 사이드바가 준비되었습니다. 위젯 섹션을 확인하면 두 개의 새로운 위젯 영역이 표시됩니다. 알아볼 수 있도록 각 사이드바에 간단한 텍스트 위젯을 추가했습니다.
사이드바를 만들었으면 이제 위치를 지정할 차례입니다. 기존 오른쪽 사이드바를 교체할 예정이므로 파일이 있는 위치를 찾아야 합니다.
이 인스턴스의 경우 sidebar.php
에 있습니다. 상위 테마에서 파일을 복사하여 하위 테마에 붙여넣습니다.
파일을 확인해보면 메인 우측 사이드바의 id인 sidebar-1
을 호출하고 있습니다.
[php]
<aside id=”secondary” class=”widget-area” role=”complementary” aria-label=”<?php esc_attr_e( 'Blog Sidebar', 'twentyseventeen' ); ?>”>
<?php dynamic_sidebar( '사이드바-1' ); ?>
</aside>
[/php]
이제 웹 디자인 범주용 사이드바 하나와 WordPress 범주용 사이드바를 하나 만듭니다. 이는 두 가지 방법으로 달성할 수 있습니다. 하나는 템플릿 기반 접근 방식이고 다른 하나는 범주 기반 접근 방식입니다.
템플릿 기반 접근 방식
이 접근 방식에서는 요구 사항에 따라 다른 템플릿을 만들어야 합니다. 이 예에서는 single.php가 단일 게시물을 담당하므로 파일을 복사하여 자식 테마에 붙여넣을 수 있습니다. 그에 따라 wordpress-post.php
와 같이 파일 이름을 바꾸고 템플릿 이름도 추가합니다.
[php]
/* 템플릿 이름: 워드프레스 사이드바
* 템플릿 게시물 유형: 게시물*/
[/php]
마찬가지로 webdesign-post.php
라는 또 다른 템플릿을 만들었습니다.
이제 자식 테마의 sidebar.php
파일로 돌아가서 어떤 템플릿이 사용 중인지 확인하는 간단한 조건을 추가합니다. 이를 위해 is_page_template()
함수를 사용합니다.
코드는 자명합니다. 사용 중인 템플릿을 확인하고 그에 따라 사이드바를 설정합니다. 어떤 조건도 충족되지 않으면 기본 사이드바를 사용합니다.
[php]
<?php
if ( is_page_template('wordpress-post.php') ) {
dynamic_sidebar( '사이드바-4' );
}elseif ( is_page_template('webdesign-post.php') ){
dynamic_sidebar( '사이드바-5' );
}또 다른{
dynamic_sidebar( '사이드바-1' );
}
?>
[/php]
이제 새 게시물을 만들고 방금 만든 템플릿 중 하나를 할당해 보겠습니다.
이 특정 게시물에 대해 WordPress 사이드바를 선택했음을 알 수 있습니다.
범주 기반 접근 방식
이 예(게시물 범주에 따라 사이드바 변경)의 경우 범주 기반 접근 방식이 템플릿 기반 접근 방식보다 더 잘 작동합니다. 이렇게 하려면 in_category()
함수를 사용하여 템플릿 대신 범주를 기반으로 sidebar.php
에서 조건을 조정해야 합니다.
[php]
<?php
if ( in_category('워드프레스') ) {
dynamic_sidebar( '사이드바-4' );
}elseif ( in_category('웹 디자인') ){
dynamic_sidebar( '사이드바-5' );
}또 다른{
dynamic_sidebar( '사이드바-1' );
}
?>
[/php]
이제 새 게시물을 수정하거나 작성하는 경우 원하는 카테고리를 추가하기만 하면 됩니다. 그에 따라 사이드바가 표시되므로 템플릿을 선택할 필요가 없습니다! 여기에서는 내 게시물 카테고리로 웹 디자인을 선택했으므로 웹 디자인 사이드바가 나타납니다.
기본적으로 특정 요구 사항에 따라 sidebar.php 조건을 조정하기만 하면 됩니다.
WordPress 플러그인으로 사용자 정의 사이드바를 만드는 방법
사이드바를 수동으로 생성하는 데 문제가 있는 경우 사이드바를 쉽게 생성할 수 있는 몇 가지 편리한 WordPress 플러그인을 사용해 볼 수 있습니다!
이러한 플러그인 중 하나는 Content Aware Sidebars입니다. 개별 페이지, 게시물, 카테고리 등에 사이드바를 동적으로 생성할 수 있는 간단한 플러그인입니다.
설치가 완료되면 관리자 패널에 사이드바 메뉴가 표시됩니다.
사이드바 > 새로 추가
먼저 사이드바에 이름을 추가합니다. 그런 다음 사이드바 조건 드롭다운에서 표시 조건을 설정할 수 있습니다. 사이드바는 페이지, 게시물, 카테고리, 작성자 등과 같은 여러 조건을 가질 수 있습니다.
일정 탭에서 사이드바를 예약하고 디자인 탭에서 HTML 태그를 변경할 수 있습니다.
오른쪽에 옵션 상자가 표시됩니다. 여기에서 새 사이드바의 위치와 규칙을 설정할 수 있습니다. 사이드바의 단축 코드 생성과 같은 작업을 수행할 수도 있습니다.
사이드바가 게시되면 모양 > 위젯 섹션에서 액세스할 수 있습니다.
이 새로운 사이드바는 설정에 따라 페이지와 게시물에 자동으로 나타납니다.
또한 플러그인을 사용하면 초기 설정에 관계없이 각 게시물이나 페이지를 편집할 때 사이드바를 선택할 수 있습니다.
게시물 또는 페이지 내에서 사이드바 – 빠른 선택 패널이 오른쪽에 표시되어 기존의 모든 사이드바를 보여줍니다. 여기에서 초기 설정에서 이전에 설정한 대상 위치에서 사이드바를 선택할 수 있습니다.
예를 들어 이전에 내 사이드바를 만들었고 대상 위치가 블로그 사이드바 였으므로 빠른 선택 패널에서 내 사이드바는 블로그 사이드바 에서만 사용할 수 있습니다.
그러나 페이지 편집 섹션에서 새 사이드바를 만들 수도 있습니다. 새 사이드바의 이름을 입력하고 페이지를 게시하거나 업데이트하기만 하면 됩니다.
새 사이드바를 만드는 경우 모양 > 위젯 섹션에서 활성화하기만 하면 됩니다.
참고: 사이드바를 페이지에 할당할 수도 있지만 페이지 템플릿에 사이드바가 포함되어 있는지 확인하십시오. 그렇지 않으면 페이지 편집 섹션에서 설정해도 사이드바가 표시되지 않습니다.
결론
이제 사이드바를 만드는 두 가지 옵션인 수동 개발과 플러그인을 볼 수 있습니다. 코드에 익숙하지 않은 경우 플러그인을 사용하는 것이 최선의 선택일 수 있지만 특정 요구 사항이 있고 사이트에 추가 플러그인을 추가하고 싶지 않은 경우 수동 방법을 사용해야 합니다. . 중요한 것은 요구 사항을 이해한 다음 최상의 옵션을 선택하는 것입니다!