it-swarm-vi.tech

Làm thế nào để làm thế nào để đăng ký với nhau.

Tuyên bố miễn trừ trách nhiệm: Tôi là một thương hiệu mới cho WP.

Tôi đang sử dụng chủ đề khung HTML5 của Starkers . Trong functions.php tôi thấy mã này:

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() ... 
}

Và trong footer.php tôi thấy mã này:

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

Tôi không hiểu làm thế nào get_sidebar() biết cách lấy đối số chuỗi đó và tìm các widget phù hợp được xác định bởi register_sidebar(). Trong đoạn chức năng.php tôi đã đăng ở trên. Không có bất kỳ đề cập nào về "chân trang" ngoại trừ các thuộc tính name, iddescription. Nhưng nó có vẻ kỳ lạ đối với tôi rằng get_sidebar() sẽ tìm kiếm 'chân trang' bên trong các thuộc tính đó.

Điều này có ý nghĩa những gì tôi đang hỏi? Có một số phần còn thiếu?

Những lý do tôi hỏi là vì - tôi muốn biết thêm về kiến ​​trúc WP - Tôi muốn có thể xác định khu vực tiện ích tùy chỉnh và biết cách hiển thị nó trên một trang cụ thể.

Cảm ơn rất nhiều.

7
jessegavin

Bạn chỉ cần gọi get_sidebar() từ index.php và nó tải tệp chủ đề sidebar.php.

register_sidebar() , mặt khác, được sử dụng cho các tiện ích nơi các plugin và như vậy muốn tự động thêm nội dung trong tệp sidebar.php của bạn nếu chủ đề của bạn hỗ trợ.

Trong trường hợp của bạn, có một tệp có tên sidebar-footer.php trong thư mục của chủ đề của bạn không?

9
john010117

Tôi chưa bao giờ bận tâm với get_sidebar(). Thay vào đó tôi chỉ sử dụng dynamic_sidebar(). Bạn sẽ gọi nó như thế này:

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

Và điều đó chăm sóc toàn bộ thanh bên. Không bao gồm tập tin bao gồm, không có thư mục chủ đề lộn xộn. Nếu tôi muốn có 5 thanh bên khác nhau, nó không thêm bất kỳ tệp nào, chỉ có các chức năng bổ sung trong functions.php.

7
John P Bloch

get_sidebar('name') lấy một mẫu thanh bên của tên sidebar-name.php.

Trong sidebar-name.php, có HTML cho thanh bên và một cuộc gọi đến dynamic_sidebar('some-name-hopefully-the-same'), đó là nơi các widget sẽ đi.

register_sidebar(array(name=>'some-name-hopefully-the-same', ...)) là những gì cho phép Dynamic_sidebar hoạt động.

Như bạn có thể thấy, get_sidebar(templatename) được sử dụng với các mẫu thanh bên. Nếu bạn không có nhu cầu về chúng, bạn có thể gọi trực tiếp dynamic_sidebar(sidebarname) từ chủ đề của mình.

4
Gerard ONeill

get_sidebar('footer') cố gắng tải sidebar-footer.php từ chủ đề đang hoạt động. Starkers không cung cấp tập tin này. Kiểm tra starkers/sidebar-footer.php và mọi thứ sẽ trở nên rõ ràng.

3
Annika Backstrom