【问题标题】:Algolia - WordPress - Uncaught TypeError: wp.template is not a functionAlgolia - WordPress - 未捕获的类型错误:wp.template 不是函数
【发布时间】:2021-02-25 16:26:40
【问题描述】:

我收到此错误: 未捕获的类型错误:wp.template 不是 Algolia 模板上的函数。它显然与调用命中的小部件相关联:

search.addWidget(
              instantsearch.widgets.hits({
                container: '#hits',
                hitsPerPage: 30,
                templates: {
                item: wp.template('instantsearch-hit'),
                empty: "We didn't find any results for the search <em>\"{{query}}\"</em>"
                }
                })
                );

据我所知,这需要 wp-util.js 脚本才能工作(这应该是 WordPress 的一部分,可以找到该脚本: /wp-includes/js/wp-util.js

更多信息在这里: https://codex.wordpress.org/Javascript_Reference/wp.template

问题似乎是由于某种原因没有加载模板。我试图通过functions.php将脚本加入队列,但是这样做之后除了得到以前的错误之外,我还得到了两个新错误:

未捕获的引用错误:_ 未定义 在 wp-util.js:17 在 wp-util.js:124

有人遇到过这样的问题并设法解决了吗?

感谢您的帮助。

【问题讨论】:

  • 如果脚本是 WP 的一部分,那么它将以正确的顺序自行加载以使其工作。如果你尝试自己不按顺序加载它,你会得到错误,因为 WP 还没有准备好。关于您的初始错误-您是否使用自己编写的任何自定义代码?如果是这样,请包括它。如果不是,如果问题出在插件本身,则需要联系插件开发人员。

标签: wordpress algolia


【解决方案1】:

您是否正在使用 Cloudflare 火箭装载机?

bug report 表示显然是由 Cloudflare 火箭装载机引起的相同错误。

该错误报告中提到的解决方案是:

我应用了一个小解决方法来防止 js 错误,这是 阻止我网站中的其他脚本,添加:

if( wp.template == null ) return;

脚本触发后:

jQuery(function () {

通过这种方式,我的以下脚本可以正确触发,但有时 (假设每 4 个页面加载 1 次)自动完成搜索不是 被解雇了。

【讨论】:

    【解决方案2】:

    在我的 wp 管理面板中遇到了同样的问题。并发现“BackUpWordpress”插件是问题所在。我只是将其停用并再次检查页面。错误消失了。

    所以解决方案是只需一个一个停用其他插件,然后每次检查错误页面。这样你就可以知道哪个插件负责这个 jquery 错误。

    我确认停用插件不会删除该插件内保存的数据。所以停用插件没有问题。在发生“Uncaught TypeError: wp.template is not a function”错误的页面上完成工作后,您可以再次激活插件。

    【讨论】:

      【解决方案3】:

      在我的例子中,我安装了 W3 Total Cache 插件,并且 Minify 选项设置为 Manual。

      从手动缩小列表中删除 wp-underscore 脚本后,wp.template() Not a function 的问题消失了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-19
        • 1970-01-01
        相关资源
        最近更新 更多