问题描述

当我使用一个名为 WpBakery Visual Composer 的插件时,我在 WordPress 中收到此错误。

我正在使用最新版本的 WordPress(4.5),使用最新的 Google Chrome 版本和所有插件更新。我似乎无法使用 Visual Composer 添加任何元素或模板。

有人可以帮我或告诉我可能发生什么,我可以如何解决这个错误。

我得到的错误:

最佳解决办法

请看我的答案 here.

我通过更新 html2element 功能来修复这个错误:

html2element: function(html) {
        var $template, attributes = {},
            template = html;
        $template = $(template(this.model.toJSON()).trim()), _.each($template.get(0).attributes, function(attr) {
            attributes[attr.name] = attr.value
        }), this.$el.attr(attributes).html($template.html()), this.setContent(), this.renderContent()
    },

/wp-content/plugins/js_composer/assets/js/backend/composer-view.js

或者在 wp-content /plugins /js_composer /assets /js /dist /backend.min.js

希望这适合你!

次佳解决办法

@苏宁海道

嗨,嗨,我正在使用 Astra 主题。这个修复是 99.9%工作。对于某些人来说,这只会停止旋转轮,但一旦页面加载视觉作曲家就不会。

我对这段代码做了一个微小的改动 (现在到处都是)

原创 Astra 主题代码 (composer-view.js)

        html2element:function (html) {
        var attributes = {},
            $template;
        if (_.isString(html)) {
            this.template = _.template(html);
            $template = $(this.template(this.model.toJSON()).trim());
        } else {
            this.template = html;
            $template = html;
        }
        _.each($template.get(0).attributes, function (attr) {
            attributes[attr.name] = attr.value;
        });
        this.$el.attr(attributes).html($template.html());
        this.setContent();
        this.renderContent();
    },

代码的工作原理:

html2element: function(html) {
    var $template, 
    attributes = {},
    template = html;
    $template = $(template(this.model.toJSON()).trim()), 
     _.each($template.get(0).attributes, function(attr) {
    attributes[attr.name] = attr.value
}); this.$el.attr(attributes).html($template.html()), this.setContent(), this.renderContent()
},

主要区别在于这里 (与原始代码相对)

}); this.$el.attr

有一个分号,而不是原来的逗号:):

}), this.$el.attr

干杯们:)

更新:这固定了 20 个站点中的大约 19 个与主题 astra 有相同的错误,如上所述… 除了一个站点之外。

视觉作曲家终于出现 (缺少一半的设计元素) 后,我遇到了这个错误

Uncaught Error: Syntax error, unrecognized expression: .ui-tabs-nav [href=#tab-1415196282-1-8]

我通过更新 composer-custom-views.js 的第 552 行来解决这个问题:

$('.ui-tabs-nav [href="#tab-' + params.tab_id + '"]').text(params.title);

而且,所有的东西现在都可以工作。抱歉,如果它不适用于所有主题,请尝试使用上面提到的代码。如果这不行,我的解决方案:)

第三种解决办法

有人张贴在 WordPress 论坛这个解决方案为我工作。

/wp-content/plugins/js_composer/assets/js/backend/composer-view.js 替换 html2element 中的 html2element 功能。

html2element: function(html) {
            var $template, attributes = {},
                template = html;
            $template = $(template(this.model.toJSON()).trim()), _.each($template.get(0).attributes, function(attr) {
                attributes[attr.name] = attr.value
            }), this.$el.attr(attributes).html($template.html()), this.setContent(), this.renderContent()
        },

编辑:我不得不在不同的情况下再次进行这种替换,并且在禁用然后重新启用 Visual Composer 插件和 Ultimate Visual Composer add-on 之前,它不会开始工作。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。