wordpress - 将第二个自定义菜单添加到全局上下文时出现问题
问题描述
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)
我正在抓取第二个注册菜单并将其添加到标题模板中。我正在使用带有 Twig 模板的 Timber 插件。
我将第二个菜单添加到全局上下文中:
$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 文件包含在扩展为 index.twig 的 base.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 渲染得很好,但是当我添加用户菜单时,它给了我顶部的错误。当我删除with {'custom-menu': custom-menu.get_items}
它给我的错误:Object of class Timber\Menu could not be converted to int
user-menu.twig 文件如下所示:
<ul>
{% for item in custom-menu %}
<li class="{{ item.classes | join(' ') }}">
<a target="{{ item.target }}" href="{{ item.link }}">{{ item.title }}</a>
{% include "user-menu.twig" with {'custom-menu': item.get_children} %}
</li>
{% endfor %}
</ul>
Timber Github repo 上的文档建议您可以将菜单添加到全局上下文中,并在 get_context 时简单地添加它们。
https://github.com/timber/timber/blob/master/docs/guides/menus.md
任何人都可以帮助诊断问题吗?
解决方案
也许我会首先为您提供我在相同情况下使用的内容。
在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 %}
推荐阅读
- javascript - 如何在 localStorage 的 mirthril.js 中存储状态?
- java - 如何调用驻留在不同项目中的方法?
- excel - 尽管其他事件有效,但工作表激活事件未触发
- cuda - NVIDIA Pascal 上的内存合并和 nvprof 结果
- sql - 如何过滤关联对象?
- excel - 如何遍历 Excel Javascript API 中所有打开的工作簿?
- java - 如何覆盖 AEM 中 RSS 提要的默认功能?
- javascript - 更改选择字段后不显示输入字段
- python - Ttfidfvectorizer 在交叉验证期间通过在管道中训练频率来调整测试
- python - 对 Python 海龟图形 onkey 函数使用 num pad 键的问题