在我的Wordpress Timber主题中创建一个Widget区域

Joh*_*han 3 wordpress theming twig

我正在使用Timber来创建一个非常基本的Wordpress主题.

我被困了.

我想在主题中创建Widget区域,我无法弄明白.

我已尝试按照说明创建动态窗口小部件,在此页面上 - https://github.com/jarednova/timber/wiki/Sidebar#method-3-dynamic

通过以下我已经将以下代码添加到我的文件 - to page-frontpage.php我添加了

$context['dynamic_sidebar'] = Timber::get_widgets('dynamic_sidebar');
Run Code Online (Sandbox Code Playgroud)

所以它现在看起来像这样:

<?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);
Run Code Online (Sandbox Code Playgroud)

然后我将其添加到base.twig文件中

<section>
    {{ dynamic_sidebar }}
</section>
Run Code Online (Sandbox Code Playgroud)

我希望在外观 - >自定义下的Wordpress管理员中看到一个新的Widget区域但什么都没有.

在过去的几个小时里我一直在努力,并且收效甚微,任何帮助都将不胜感激.

谢谢.

Joh*_*han 12

我已经解决了这个问题.

我只需要回到基础并在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>',
        ) );
Run Code Online (Sandbox Code Playgroud)

在page-home.php中

$context['home_left'] = Timber::get_widgets('home_left');
Run Code Online (Sandbox Code Playgroud)

在home.twig

<div class="left-box">{{ home_left }}</div>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助将来的某个人