Salut,
je maintiens un site wordpress ou nous avons utilisé VueJS + l'API WP sur certaines parties dont une partie importante pour le référencement : un megamenu..
Je rencontre un soucis de référencement naturel sur le composant megamenu en desktop, celui ci récupère en effet dynamiquement les items du menu.
dans functions.php du thème je passe les constantes au script megamenu.js
1 2 3 4 5 6 7 8 9 10 11
| wp_localize_script('megamenu', 'paths', array(
'ajax_url' => admin_url('admin-ajax.php'),
'menu_url' => site_url().'/wp-json/wp/v2/menu/',
'site_url' => site_url(),
'megamenu_img_url' => get_template_directory_uri().'/img/megamenu/',
'logo_url' => get_template_directory_uri().'/img/blue_logo.png',
'js_url' => get_template_directory_uri().'/js/',
'img_url' => get_template_directory_uri().'/img/',
'picto_url' => get_template_directory_uri().'/img/pictos/',
'ajax_nonce' => wp_create_nonce('ajax_token')
)); |
Puis dans le composant, j'appelle l'url de l'api (/wp-json/truc/menu...) et j'assigne mes liens au megamenu
axios.get(paths.menu_url).then(response =>(megamenu.links = response.data, this.setParentItems(response.data)))
Après, en fonction de l'id du parent item survolé, on génère ses sublinks et toute la tambouille : image, pictos ,description etc...
En gros, je ne vois pas de solution à part tout réecrire (en jQuery XD) pour le moment, j'ai cherché comment faire un Server Side Rendering et je trouve des solutions avec nuxt.js ou autre (donc changer tout le backend du site )mais pas pour un projet existant qui ne comporte que des composants vuejs indépendants "perdus" dans un thème wp sur mesure classique.
Partager