[WP.org] Ouverture d'un accordéon depuis une extension

  • Avatar de Inconnu

    Bonjour à tous !

    Ma configuration WP actuelle :

    Extensions en place : Search In Place (extension de recherche, utilisée pour du find-in-page)

    Problème(s) rencontré(s) :

    J’ai installé il y a peu une extension permettant d’effectuer d’une recherche dans le contenu de la page, avec mise en surbrillance du (des) terme(s) recherché(s). L’extension propose un pop-up pour les résultats en AJAX, et le click sur un des résultats amène à un scroll de la page pour focus le résultat souhaité.

    Le problème intervient lorsque la recherche agit sur du texte placé en contenu d’un accordéon ; le pop-up AJAX répertorie effectivement les occurrences, cependant le click sur les résultats ne fonctionne que pour les termes situés dans le titre de l’accordéon, et non pas dans le contenu de celui-ci.

    J’aimerais donc corriger ce problème, de sorte qu’après recherche d’un terme et sélection d’un résultat contenu dans un accordéon, la fenêtre scroll jusqu’à ce dernier et l’ouvre.

    En observant le script JS de l’extension, je suis tombé sur ceci :

    		openAccordion = function(e)
    		{
    			if(e.is(':hidden'))
    			{
    				var t,h;
    
    				// Elementor accordion
    				t = e.closest('.elementor-tab-content');
    				if(t.length)
    				{
                        var p;
                        while(t.length && t.is(':hidden'))
                        {
                            if(!t.hasClass('elementor-active'))
                            {
                                h = $('#'+t.attr('id').replace('content', 'title'));
                                if(h.length) h.click();
                            }
                            p = t.parent();
                            t = p.closest('.elementor-tab-content');
                        }
    
    					return;
    				}
    
    				// Divi accordion
    				t = e.closest('.et_pb_toggle_content');
    				if(t.length)
    				{
    					h = t.siblings('.et_pb_toggle_title');
    					if(h.length) h.click();
    					return;
    				}
    
    				// SiteOrigin accordion
    				t = e.closest('.sow-accordion-panel-content');
    				if(t.length)
    				{
    					h = t.siblings('.sow-accordion-panel-header-container');
    					if(h.length) h.find('.sow-accordion-open-button').click();
    					return;
    				}
    			}
    		},

    Cette fonction semble justement prévue pour régler mon problème, hors je me suis aperçu à l’aide de quelques console.log qu’on ne rentre dans aucune des conditions présentes (Elementor / Divi / SiteOrigin). Je comprends plus ou moins l’objectif des quelques lignes de code ci-présentes (détecter l’éditeur de page, chercher le bloc accordéon le plus proche du terme recherché, simuler un click sur le titre de l’accordéon pour l’ouvrir…) mais je ne parviens pas à appliquer cette démarche pour l’éditeur Gutenberg.

    Quelqu’un saurait donc m’aider ? Je vous remercie par avance pour votre intérêt !

  • Avatar de Inconnu

    Bonjour. Vous êtes sur le forum WordPress.com. Nous sommes habilités à répondre uniquement aux questions sur les sites WordPress qui sont hébergés par WordPress.com.

    Votre site fonctionne lui aussi sous WordPress, mais il n’est pas hébergé sur les serveurs de WordPress.com. Veuillez donc reposer votre question à l’adresse : https://wpfr.net/support/

    Pour mieux comprendre, je vous invite à lire attentivement cette annonce importante : https://wordpress.com/fr/forums/topic/important-ce-forum-est-reserve-aux-sites-heberges-par-wordpresscom/

    Merci et bonne continuation.

  • Le sujet ‘[WP.org] Ouverture d'un accordéon depuis une extension’ est fermé aux nouvelles réponses.