javascript - template - j composer wordpress
Unkeught TypeError: $ template.get no es una funciĆ³n (7)
@Sorin Haidau
Hola chicos, estoy usando el tema de Astra. Esta solución funciona al 99.9%. Por alguna razón, esto solo detiene la rueca, pero una vez que la página carga, el compositor visual no lo hace.
Hice un ligero cambio en este código (que ya está publicado en todas partes)
Código de tema de Astra original aquí (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();
},
El código que funciona:
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()
},
La principal diferencia se encuentra aquí (frente al código original)
}); this.$el.attr
Hay un punto y coma en lugar de la coma original :):
}), this.$el.attr
Saludos amigos :)
Actualización: Esto corrigió aproximadamente 19 de los 20 sitios que tuve con el tema astra con el mismo error mencionado anteriormente ... todos excepto un sitio.
Tuve este error después de que finalmente apareció el compositor visual (faltaba la mitad de los elementos de diseño)
Uncaught Error: Syntax error, unrecognized expression: .ui-tabs-nav [href=#tab-1415196282-1-8]
Lo arreglé actualizando la línea 552 del composer-custom-views.js:
$(''.ui-tabs-nav [href="#tab-'' + params.tab_id + ''"]'').text(params.title);
Y voilà todo ahora funciona. Disculpe si no funciona para todos los temas, intente utilizar el código mencionado por otros arriba. Si eso no funciona, pruebe mis soluciones :)
Recibo este error en WordPress cuando uso un complemento llamado WpBakery Visual Composer.
Estoy usando la última versión de WordPress (4.5), utilizando la última versión de Google Chrome y todos los complementos están actualizados. Parece que no puedo agregar elementos o plantillas con Visual Composer.
¿Alguien puede ayudarme o decirme qué podría estar pasando y cómo puedo solucionar este error?
El error que recibo:
Alguien publicó en los foros de WordPress esta solución que funcionó para mí.
Reemplace la función html2element
en /wp-content/plugins/js_composer/assets/js/backend/composer-view.js
con lo siguiente.
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()
},
Editar: Tuve que hacer este reemplazo por segunda vez bajo diferentes circunstancias, y no comenzó a funcionar hasta que deshabilité y luego volví a habilitar el complemento Visual Composer y el complemento Ultimate Visual Composer.
Es curioso ... mi número de versión de compositor visual era muy superior a la última actualización (4.8. *).
De todos modos ... tuve el mismo problema y esas respuestas anteriores no resolvieron completamente mis problemas, así que decidí probar y comprar una nueva copia del complemento. Funcionó bien.
Ahora puedo confirmar que la versión 4.12.1 de Visual Composer funciona con WordPress 4.6.1 sin errores.
También ten en cuenta esto:
No existe un directorio como backend
- backend
o un archivo de este tipo denominado composer-view.js
en la última versión de Visual Composer.
PD. El uso de estos constructores de páginas GUI es una mierda ***.
Noté que el código no se estaba pasando a la función html2element, pero existía en la función que lo llamaba (render)
El siguiente código ha corregido por completo mis problemas, puedo cargar la página, agregar, clonar, eliminar, etc.
render: function () {
var $shortcode_template_el = $( ''#vc_shortcode-template-'' + this.model.get( ''shortcode'' ) );
if ( $shortcode_template_el.is( ''script'' ) ) {
var newHtmlCode = _.template( $shortcode_template_el.html(),
this.model.toJSON(),
vc.templateOptions.default );
if(!_.isString(newHtmlCode)){
newHtmlCode = $shortcode_template_el.html();
}
this.html2element( newHtmlCode );
} else {
var params = this.model.get( ''params'' );
$.ajax( {
type: ''POST'',
url: window.ajaxurl,
data: {
action: ''wpb_get_element_backend_html'',
data_element: this.model.get( ''shortcode'' ),
data_width: _.isUndefined( params.width ) ? ''1/1'' : params.width,
_vcnonce: window.vcAdminNonce
},
dataType: ''html'',
context: this
} ).done( function ( html ) {
this.html2element( html );
} );
}
this.model.view = this;
this.$controls_buttons = this.$el.find( ''.vc_controls > :first'' );
return this;
},
Por favor mira mi respuesta here.
html2element
este error actualizando la función html2element
a:
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()
},
en /wp-content/plugins/js_composer/assets/js/backend/composer-view.js
o en wp-content / plugins / js_composer / assets / js / dist / backend.min.js`
¡Espero que esto funcione para usted!
para cualquier persona que venga aquí desde la búsqueda de google: después de cambiar la función html2element si tiene este error No puede leer la propiedad ''atributos'' actualización render: función al código siguiente
render: function () {
var $shortcode_template_el = $( ''#vc_shortcode-template-'' + this.model.get( ''shortcode'' ) );
if ( $shortcode_template_el.is( ''script'' ) ) {
var newHtmlCode = _.template( $shortcode_template_el.html(),
this.model.toJSON(),
vc.templateOptions.default );
if(!_.isString(newHtmlCode)){
newHtmlCode = $shortcode_template_el.html();
}
this.html2element( newHtmlCode );
} else {
var params = this.model.get( ''params'' );
$.ajax( {
type: ''POST'',
url: window.ajaxurl,
data: {
action: ''wpb_get_element_backend_html'',
data_element: this.model.get( ''shortcode'' ),
data_width: _.isUndefined( params.width ) ? ''1/1'' : params.width,
_vcnonce: window.vcAdminNonce
},
dataType: ''html'',
context: this
} ).done( function ( html ) {
this.html2element( html );
} );
}
this.model.view = this;
this.$controls_buttons = this.$el.find( ''.vc_controls > :first'' );
return this;
},
una última solución en diciembre de 2016, para el arreglo Visual Composer es esto,
html2element:function(html){var $template,attributes={},template=vc.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()},
note esto importante, template = vc.template (html); en el código real. esta es la solución rápida en la última versión, compatible con WPordpress más reciente.
Recuerde actualizar Wordpress y el tema en consecuencia, por lo que esta solución debería funcionar bien.
gracias y feliz codificación