web-dev-qa-db-fra.com

Visual composeur ne se charge pas et donne à TypeError: _.template (...). Trim n'est pas une fonction

Mon plugin Visual composer ne fonctionne pas. Il est resté sur la page de chargement. Et cela donne une erreur "TypeError: .template (...). Trim n'est pas une fonction" Une erreur est sur cette ligne de code: This. $ Controls = $ (. template (template, data, vc.template_options) .trim ()). addClass ('vc_controls');

S'il vous plaît aidez-moi à résoudre ce problème.

Voici l'erreur que je reçois:

 screenshot

14
Mohsin Awan

Cet article suggère de revenir à votre version de travail avant la version 4.5. http://forums.artbees.net/t/urgent-wordpress-4-5-broken-vc-backend-editor-workaround-fix-in-comments/2734

Vous trouverez ici les anciennes versions de wp à installer https://wordpress.org/download/release-archive/30

Je n'ai pas essayé moi-même juste une suggestion. 

Si cela reste un problème pour vous, j'ai résolu cette erreur en mettant à jour manuellement mon thème via ftp. J'ai téléchargé la dernière version du thème car les mises à jour automatiques ne fonctionnaient pas. J'ai gardé WordPress version 4.5. Voici les étapes que j'ai prises comme suit. 

  1. J'ai renommé le thème exemple de mise à jour x une fois téléchargé, nommé le thème actuel x-précédent, puis modifié x-update en x et supprimé de x-précédent.
  2. J'ai mis à jour js_composer de la même manière qu'à l'étape 1. Téléchargé la dernière version de js_composer qui était fournie avec le thème. Ceci est mis à jour dans les plugins en dehors du thème. À ce stade, vous devriez être en mesure de mettre à jour visual composer à partir du tableau de bord wp s'il ne l'a pas déjà fait. 
  3. Cela a permis à vc de fonctionner à nouveau, mais des erreurs étranges se sont produites dans le fichier vc_column.php de vc_templates. J'ai dû commenter manuellement le code de problème pour que les erreurs disparaissent. 

Ces 3 étapes sont un peu stressantes si vous n'êtes pas familiarisé avec le téléchargement de fichiers directement dans votre répertoire racine public_html de votre site Web. Certains thèmes peuvent offrir un soutien et effectuer le téléchargement FTP pour vous si vous leur fournissez un mot de passe nom d'utilisateur ftp. 

Une dernière chose à faire est de vider votre cache pour votre site Web. En chrome, vous pouvez vider votre cache en allant à chrome: // paramètres/cookies, entrez website.com dans la barre de recherche, puis cliquez sur Tout supprimer pour effacer toutes les données stockées localement sur votre site Web. La mise à jour manuelle des thèmes et des plugins est recommandée uniquement si les mises à jour automatiques ne sont pas possibles, procédez comme indiqué ci-dessus. Pour mon thème et cette même erreur exacte en question, j'ai suivi ces étapes vraiment bien faites https://community.theme.co/kb/updating-your-theme-and-plugins/ . Cependant, cela sera différent selon le thème que vous avez. Et si vous préférez revenir en arrière, vous pouvez suivre ma suggestion initiale. Mais pour moi, j'aime avoir tout ce qui est nouveau et à jour. 

Une remarque plus importante si vous avez ce thème, alors je devais supprimer le plugin x-shortcodes des plugins vers mon site car mon thème mis à jour utilise pierre angulaire au lieu de x-shortcodes pour traiter les codes courts importants pour que vc fonctionne correctement. Une autre chose à savoir est qu'aucune de vos données ne doit être endommagée lors du téléchargement de plugins et de thèmes. Toutes les données/contenus sont stockés en toute sécurité dans votre base de données et non dans votre thème. 

0
Ian Poston Framer

Si vous ne parvenez pas à résoudre cette erreur en mettant à niveau ou en rétrogradant votre thème ou plug-in, vous pouvez au moins apporter les modifications ci-dessous.

1. Ouvrez les deux fichiers suivants:

wp-content\plugins\js_composer\assets\js\frontend_editor\frontend_editor.js
wp-content\plugins\js_composer\assets\js\frontend_editor\custom_views.js

2. Remplacer
this. $ controls = $ (_.template (modèle, données, vc.template_options) .trim ()) .addClass ('vc_controls'); avec
this. $ controls = $ (("vc.template_options") .trim ()) .addClass ('vc_controls');

Cela fonctionnera sûrement.

18
maulik

Mise à niveau vers Visual Composer version 4.11.2+

Remarque La compatibilité avec Wordpress 4.5 a été fixée le 13 avril: https://wpbakery.atlassian.net/wiki/display/VC/Release+Notes

6
Natacha Beaugeais

Solution Goto file /wp-content/plugins/js_composer_salient/assets/js/dist/backend.min.js autour de la ligne 4045:

======> Remplacez le code 

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()
},
6
Amritosh pandey

Comme Shady Sherif l’a dit à la suggestion de Maulik, c’est ce que j’ai changé à deux endroits sur frontend-editor.min.js et cela a fonctionné !! Merci à vous deux!

Change ça:

this.$controls=$(_.template(template,data,_.extend({},vc.template_options,{ evaluate:/\{#([\s\S]+?)#}/g})).trim()).addClass("vc_controls");  

Avec ça:

this.$controls=$(("vc.template_options").trim()).addClass("vc_controls");
1
Berein

J'ai essayé les solutions suivantes:

  • maulik`s (mais il n'y avait pas de tels fichiers dans mon dossier de plug-ins - frontend_editor.js et custom_views.js, juste un dossier "vendeurs" sur "/ wp-content/plugins/js_composer/assets/js/frontend_editor"),

  • La solution d'Amritosh Pandey (ne fonctionne pas même après le nettoyage de la mémoire cache et de l'historique),

  • La solution de Berein (ne fonctionne pas trop).

J'ai résolu le problème en utilisant la solution d'Amritoshpandey: https://Gist.github.com/levantoan/519bb0d42c9f7bd6c4d78ef1686bb848 ("Le code suivant a complètement corrigé mes problèmes, je peux charger la page, ajouter, cloner, supprimer, etc. ")

Le code d'Amritoshpandey doit être collé dans /wp-content/plugins/js_composer/assets/js/dist/backend.min.js au lieu de:

render: function () {var $ shortcode_template_el = $ ("# vc_shortcode-template -" + this.model.get ("shortcode")); if ($ shortcode_template_el.is ("script")) this.html2element (_. template ($ shortcode_template_el.html (), this.model.toJSON (), vc.templateOptions ["default"]); else {var params = this.model.get ("params"); $. ajax ({type : "POST", url: window.ajaxurl, données: {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 (fonction (html) {this.html2element (html)})} retournez this.model.view = this, this. $ controls_buttons = this. $ el.find (". vc_controls>: first"), this},

0
Andrews32