Supporto » Fixing WordPress » Evidenziare parola trovata con la ricerca

  • Quando faccio una ricerca nel mio blog, mi mostra tutti gli articoli che contengono la parola cercata. Vorrei sapere se c’è un modo per evidenziare con un css la parola contenuta negli articoli, in modo che trovo subito il punto cercato.

Stai visualizzando 2 risposte - dal 16 al 17 (di 17 totali)
  • Chi ha creato la discussione blogforum

    (@blogforum)

    Ho apportato le tue modifiche e fatto varie modifiche, questa è quella che va meglio, ma non trova ancora la parola cibo in “Consigli per gli acquisti” sez. Vaporiere. Non capisco il perché.

    Ho modificato la regex, se faccio una ricerca con “bs” gli   non li evidenzia nel risultato di ricerca, ma se clicco su un risultato, appaiono ancora nell’articolo e nel footer.

    Poi ho anche modificato questo con #primary jQuery(‘#primary’).highlight(search,’highlight’);

    <script>
    jQuery.fn.highlight = function(what,spanClass) {
        return this.each(function(){
            var container = this,
                content = container.innerHTML,
                pattern = new RegExp('([^&nbsp;]+>[^<.]*)(' + what + ')([^<.]*[^&nbsp;]+)','ig'),
                replaceWith = '$1<span ' + ( spanClass ? 'class="' + spanClass + '"' : '' ) + '">$2</span>$3',
                highlighted = content.replace(pattern,replaceWith);
            container.innerHTML = highlighted;
        });
    }
    var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
            sURLVariables = sPageURL.split('&'),
            sParameterName,
            i;
    
        for (i = 0; i < sURLVariables.length; i++) {
            sParameterName = sURLVariables[i].split('=');
    
            if (sParameterName[0] === sParam) {
                return sParameterName[1] === undefined ? true : sParameterName[1];
            }
        }
    };
    jQuery(document).ready(function(){
      var search = '<?php echo get_search_query(); ?>';
      var fromsearch = '<?php echo $_REQUEST['fromsearch']; ?>'
      if(search !== null && search !== ''){ 
       jQuery('#primary').highlight(search,'highlight');
          jQuery('#main article a').each(function(i,e){
            var newUrl =  jQuery(e).prop('href') + '?fromsearch=' + encodeURIComponent(search);
            this.href = newUrl;
          });
       }
       
       if(fromsearch !== null && fromsearch !== ''){
          jQuery('body').highlight(fromsearch,'highlight');
       }
    });
    </script>
    • Questa risposta è stata modificata 5 anni, 7 mesi fa da blogforum.
    • Questa risposta è stata modificata 5 anni, 7 mesi fa da blogforum.
    • Questa risposta è stata modificata 5 anni, 7 mesi fa da blogforum.
    • Questa risposta è stata modificata 5 anni, 7 mesi fa da blogforum.
    Chi ha creato la discussione blogforum

    (@blogforum)

    Sto provando questo plugin https://wordpress.org/plugins/relevanssi/ e funziona correttamente, anche se preferirei mettere un codice piuttosto del plugin.

Stai visualizzando 2 risposte - dal 16 al 17 (di 17 totali)
  • Il topic ‘Evidenziare parola trovata con la ricerca’ è chiuso a nuove risposte.