Issue when adding second custom menu to global context - Unsupported operand types in /app/wp-content/plugins/timber-library/vendor/twig/twig/lib/Twig/Environment.php(462)
我正在抓取第二个注册菜单, 并将其添加到标题模板中。我正在将Timber插件与Twig模板一起使用。
我将第二个菜单添加到全局上下文中:
$context['custom-menu'] = new Timber\Menu( 'Custom Menu' );
并在我的index.php文件中调用菜单。
$context = Timber::get_context();
$context['posts'] = new Timber\PostQuery();
$templates = array( 'index.twig' );
if ( is_home() ) {
array_unshift( $templates, 'home.twig' );
}
Timber::render( $templates, $context );
【将第二个自定义菜单添加到全局上下文时出现的问题】header.twig文件包含在base.twig中, 该文件已扩展为index.twig。这包括所有标题。
{% include "partial/user-menu.twig" with {'custom-menu': custom-menu.get_items} %}
{% include "menu.twig" with {'menu': menu.get_items} %}
{% include "partial/sl_logo.twig" %}
{% include "partial/sl_search.twig" %}
menu.twig呈现得很好, 但是当我添加用户菜单时, 它在顶部出现了错误。当我使用{‘ custom-menu’ :custom-menu.get_items}删除时, 出现以下错误:Timber \ Menu类的对象无法转换为int
user-menu.twig文件如下所示:
<
ul>
{% for item in custom-menu %}
<
li class="{{ item.classes | join(' ') }}">
<
a target="{{ item.target }}" href="http://www.srcmini.com/{{ item.link }}">
{{ item.title }}<
/a>
{% include "user-menu.twig" with {'custom-menu': item.get_children} %}
<
/li>
{% endfor %}
<
/ul>
Timber Github存储库上的文档建议你可以将菜单添加到全局上下文, 并在get_context时简单地添加菜单。
https://github.com/timber/timber/blob/master/docs/guides/menus.md
谁能帮助诊断问题?
#1也许我会先在相同的情况下为你提供我正在使用的产品。
在functions.php中添加
function add_to_context( $data ){
//menu
$data['menu_primary'] = new TimberMenu( 'primary' );
$data['menu_footer'] = new TimberMenu( 'footer' );
return $data;
}
下次在所需位置使用:
{% for item in menu_primary.get_items %}
...
{% endfor %}
推荐阅读
- 有没有办法知道别人是否正在编辑相同的function.php或style.css()
- 有关访问Ajax所需文件以传递给URL进行Ajax调用的问题
- Laravel Blade的$loop变量在Sage 9视图中可用吗()
- 是否可以重新注册未注册的WordPress侧边栏()
- 是否可以在Vue2 Js或React.Js中制作WordPress主题()
- 是否可以从其他服务器托管WordPress数据库
- 在WordPress的出现我的主题没有背景描述它
- 在WordPress中如何以正确的方式编写post mata( [关闭])
- 在woocommerce中,如何在结帐页面上添加参与者列表并在订单详细信息页面中显示