it-swarm-ko.tech

Register_sidebar ()와 get_sidebar ()는 작동합니까?

면책 조항 :나는 WP에 처음으로 등장한 브랜드입니다.

나는 Starkers HTML5 프레임 워크 테마를 사용 중입니다 . functions.php에서이 코드를 볼 수 있습니다.

function starkers_widgets_init() {

  // Area 1, located at the top of the sidebar.
  register_sidebar( array(
    'name' => __( 'Primary Widget Area', 'starkers' ),
    'id' => 'primary-widget-area',
    'description' => __( 'The primary widget area', 'starkers' ),
    'before_widget' => '<li>',
    'after_widget' => '</li>',
    'before_title' => '<h3>',
    'after_title' => '</h3>',
  ) );

  // Area 3, located in the footer. Empty by default.
  register_sidebar( array(
    'name' => __( 'First Footer Widget Area', 'starkers' ),
    'id' => 'first-footer-widget-area',
    'description' => __( 'The first footer widget area', 'starkers' ),
    'before_widget' => '<li>',
    'after_widget' => '</li>',
    'before_title' => '<h3>',
    'after_title' => '</h3>',
  ) );

  // ... more calls to register_sidebar() ... 
}

그리고 footer.php에서이 코드를 볼 수 있습니다 :

<?php get_sidebar( 'footer' ); ?>

나는 get_sidebar()이 문자열 인수를 취하고 register_sidebar()에 의해 정의 된 적절한 위젯을 찾는 방법을 어떻게 알고 있는지 이해하지 못합니다. 위에서 게시 한 functions.php 스 니펫에서. name, iddescription 속성을 제외하고는 "바닥 글"에 대한 언급이 없습니다. 그러나 get_sidebar()이 그 속성 안에서 '바닥 글'을 검색한다는 것이 이상하게 보일 것입니다.

이것이 내가 구하는 바를 의미합니까? 누락 된 부분이 있습니까?

내가 묻는 이유는 - WP 아키텍처에 대해 더 알고 싶습니다. 맞춤 위젯 영역을 정의하고 특정 페이지에서 렌더링하는 방법을 알고 싶습니다.

엄청 고마워.

7
jessegavin

index.php에서 get_sidebar() 를 호출하면 테마 파일 sidebar.php이로드됩니다.

register_sidebar() 는 위젯에서 사용되며, 플러그인이 플러그인에서 테마를 지원하는 경우 sidebar.php 파일에 동적으로 내용을 추가하려고합니다.

귀하의 경우, 귀하의 테마 디렉토리에 sidebar-footer.php라는 파일이 있습니까?

9
john010117

나는 get_sidebar()로 결코 괴롭히지 않았다. 대신 dynamic_sidebar()을 사용합니다. 당신은 이것을 다음과 같이 부를 것입니다 :

dynamic_sidebar('first-footer-widget-area');

그리고 그것은 모든 사이드 바를 처리합니다. 더 이상 파일 포함, 더 이상 어지러운 테마 폴더가 없습니다. 5 개의 다른 사이드 바를 원한다면 어떤 파일도 추가하지 않고 functions.php에 추가 기능 만 추가합니다.

7
John P Bloch

get_sidebar('name')sidebar-name.php라는 이름의 사이드 바 템플릿을 얻습니다.

Sidebar-name.php에는 사이드 바를위한 HTML과 dynamic_sidebar('some-name-hopefully-the-same')을 호출하는 위젯이 있습니다.

register_sidebar(array(name=>'some-name-hopefully-the-same', ...))은 dynamic_sidebar가 작동하도록 허용하는 것입니다.

보시다시피 get_sidebar(templatename)은 사이드 바 템플릿과 함께 사용됩니다. 필요가 없다면, 테마에서 dynamic_sidebar(sidebarname)을 직접 호출 할 수 있습니다.

4
Gerard ONeill

get_sidebar('footer')이 (가) 활성 테마에서 sidebar-footer.php을 (를)로드하려고 시도합니다. Starkers가이 파일을 제공합니다. starkers/sidebar-footer.php를 확인하면 모든 것이 명확 해집니다.

3
Annika Backstrom