Вопрос

Отказ от ответственности: Я новичок в бренде в WP.

Я использую Starkers Html5 Framework Тема. Анкет в 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, id а также description характеристики. Но мне показалось бы странным, что get_sidebar() будет искать «нижний колонтитул» внутри этих свойств.

Имеет ли это смысл, что я прошу? Есть ли недостающая часть?

Причины, по которым я прошу, заключаются в том, что - я хотел бы узнать больше об архитектуре WP - я хотел бы иметь возможность определить область пользовательского виджета и узнать, как ее отобрать на определенной странице.

Благодаря тонну.

Это было полезно?

Решение

Вы просто звоните get_sidebar() из index.php и он загружает файл темы sidebar.php.

register_sidebar(), с другой стороны, используется для виджетов, где плагины и такие хотят динамически добавить контент в свой sidebar.php Файл, если ваша тема поддерживает ее.

В вашем случае есть ли файл, вызванный sidebar-footer.php В каталоге вашей темы?

Другие советы

Я никогда не беспокоился get_sidebar(). Анкет Вместо этого я просто использую dynamic_sidebar(). Анкет Вы бы назвали это так:

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

И это заботится обо всей боковой панели. Больше нет включений файлов, больше нет загроможденных папок тем. Если я хочу иметь 5 разных боковых панелей, это не добавляет никаких файлов, только дополнительные функции в functions.php.

get_sidebar('name') Получает шаблон боковой панели имени sidebar-name.php .

Внутри боковой панели 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) прямо с вашей темы.

get_sidebar('footer') попытки загрузить sidebar-footer.php с активной темы. Starkers предоставляет этот файл. Проверять starkers/sidebar-footer.php и все должно стать ясным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top