2017-08-30 2 views
0

Je reçois cette erreur: Uncaught TypeError: wp.template n'est pas une fonction sur le modèle pour Algolia. Il est clairement associé au widget qui appelle les coups:Algolia - WordPress - Uncaught TypeError: wp.template n'est pas une fonction

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>" 
       } 
       }) 
       ); 

D'après ce que je sais déjà ce script a besoin wp-util.js au travail (ce qui est censé faire partie de WordPress et ce script peut être trouvé: /wp-includes/js/wp-util.js

pour en savoir plus ici. https://codex.wordpress.org/Javascript_Reference/wp.template

il semble que le problème est que le modèle ne se charge pas pour une raison quelconque j'ai essayé de le script via enqueue functions.php, mais après l'avoir fait en dehors de l'erreur précédente, j'ai deux nouvelles erreurs:

Uncaught ReferenceError: _ n'est pas défini à wp-util.js: 17 à wp-util.js: 124

Quelqu'un at-il eu un tel problème et a réussi à le résoudre déjà?

Nous vous remercions de votre aide.

+0

Si le script fait partie de WP, alors il sera charger lui-même dans la séquence correcte pour travailler. Si vous essayez de le charger vous-même hors séquence, vous obtiendrez des erreurs car WP n'est pas prêt pour cela. En ce qui concerne votre erreur initiale - utilisez-vous un code personnalisé que vous avez écrit vous-même? Si oui, veuillez l'inclure. Si ce n'est pas le cas, vous devrez contacter les développeurs du plugin si le problème provient du plugin lui-même. – FluffyKitten

Répondre

0

Utilisez-vous une chargeuse-roquette Cloudflare par hasard?

Il ya un bug report pour la même erreur qui est apparemment causée par le chargeur de fusée Cloudflare.

La solution mentionnée dans ce rapport de bogue est:

I applied a small workaround to prevent the js error, which was blocking other scripts in my website, adding:

if(wp.template == null) return; 

right after the firing of the script:

jQuery(function() { 

In this way, my following scripts are fired correctly, but sometimes (let's say 1 time every 4 page loads) the autocomplete search is not fired.