2016-06-22 10 views
1

Standard-Suche nach WordPress zeigt nicht das Schlüsselwort für alle Suchergebnisse in der Suchanfrage. Beispiel: Wenn Suchbegriffe zum zweiten Absatz gehören und ich die begrenzten Zeichen nur des ersten Absatzes anzeige, wird das Schlüsselwort nicht angezeigt. Um genau zu sein, hier ist ein Beispiel. Ich habe eine Seite mit Inhalt folgenden Inhalt:(wordpress) Zeige eine sentece higlighting Suche Keywords in der Suchergebnisseite

Dies ist nur ein Test. Dies ist nur ein Beispiel.

und in der Suchseite, habe ich die Schleife

<?php 

    while(have_posts()): the_post(); 
    echo substr(get_the_content(), 0, 10); 
    endwhile; 
?> 

nun aufgerufen, wenn ich nach dem Stichwort „Beispiel“ zu suchen, die Post wird in den Suchergebnissen angezeigt, aber da nur die ersten 10 Zeichen sind angezeigt wird, wird das Schlüsselwort nicht angezeigt. Ich beschränke meine Website auf 200 Zeichen, was ich will, ist, den Satz oder zwei mit dem darin hervorgehobenen Schlüsselwort zu zeigen. Ich hoffe ich bin klar.

Antwort

1

dieses

while(have_posts()): the_post(); 
      $str=substr(get_the_content(), 0, 10); 
      $keyword=$_REQUEST['s']; 
      echo preg_replace("/\w*?".preg_quote($keyword)."\w*/i", "<b>$0</b>", $str) 
endwhile; 

Zum Highlight Versuchen Sie das Wort in der Zeichenfolge

preg_replace("/\w*?$keyword\w*/i", "<b>$0</b>", $str) 

\w*? vor dem Schlüsselwort keine Wortzeichen übereinstimmt (so wenig wie möglich) und \w* beliebigen Wortzeichen nach dem Schlüsselwort.

Für Unicode-Unterstützung, verwenden, um die u Flag und \p{L} anstelle von \w:

preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<b>$0</b>", $str) 
Verwandte Themen