2014-12-10 1 views
2

Я использую Timber для создания очень простой темы Wordpress.Создание области виджета в моей теме Wordpress Timber

Я застрял.

Я хочу создать области виджета в теме, и я не могу понять это.

Я попытался, следуя инструкции, для создания динамических виджетов, на этой странице - https://github.com/jarednova/timber/wiki/Sidebar#method-3-dynamic

Следуя этим я добавил следующий код к моим файлам - На странице-frontpage.php я добавил

$context['dynamic_sidebar'] = Timber::get_widgets('dynamic_sidebar'); 

так теперь выглядит следующим образом:

<?php 

$context = Timber::get_context(); 
$post = new TimberPost(); 
$context['post'] = $post; 
$context['dynamic_sidebar'] = Timber::get_widgets('dynamic_sidebar'); 
Timber::render(array('page-' . $post->post_name . '.twig', 'page.twig'), $context); 

затем я добавил это в файл base.twig

<section> 
    {{ dynamic_sidebar }} 
</section> 

Я ожидал увидеть новую область Виджета в Wordpress Admin под Внешний вид -> Настроить, но ничего не получилось.

Я боролся с этим в течение последних нескольких часов и добился небольшого прогресса, любая помощь была бы весьма признательна.

спасибо.

ответ

9

Я исправил эту проблему.

Мне просто нужно было вернуться к основам и создать виджеты в файле functions.php, так что теперь мой код выглядит примерно так.

в functions.php

register_sidebar(array(
      'name' => 'Home left sidebar', 
      'id' => 'home_left', 
      'before_widget' => '<div>', 
      'after_widget' => '</div>', 
      'before_title' => '<h2 class="rounded">', 
      'after_title' => '</h2>', 
     )); 

в стр-home.php

$context['home_left'] = Timber::get_widgets('home_left'); 

в home.twig

<div class="left-box">{{ home_left }}</div> 

Надеется, что это поможет кому-то в будущем

Смежные вопросы