Omnisearch macht die Suche jeglicher Inhalte ganz einfach, sowohl lokal auf deiner Seite als auch von ausgewählten Anbietern im Web!
Omnisearch nutzen
Die Benutzung von Omnisearch ist außerordentlich einfach. Suche einfach! Wenn du dich im WordPress Admin-Panel befindest, kannst du entweder die Suchleiste in der WordPress Adminleiste (rechts oben, gleich über deinem Benutzer-Menü) nutzen oder zu Jetpack → Omnisearch gehen und von dort aus beginnen. Beachte bitte, dass mittels dem Suchfeld in der WordPress Adminleiste lediglich das Back-End deiner Seite mit Omnisearch durchsucht wird, da sich im Front-End bereits ein Suchfeld befindet, mit welchem sich die Seite ganz normal durchsuchen lässt. Diese Möglichkeit möchten wir für dich weiterhin unverändert belassen.
Eine Ergebnis-Sektion hinzufügen
Eine neue Sektion mit Ergebnissen zu Omnisearch hinzuzufügen ist unglaublich einfach. Grundsätzlich ist alles was du tun musst Folgendes:
add_filter( 'omnisearch_results', 'my_omnisearch_results', 10, 2 ); function my_omnisearch_results( $results, $search_term ) { $html = '<h2>My Omnisearch Results</h2>'; $html .= '<p>You just searched for <em>' . esc_html( $search_term ) . '</em>!</p>'; $results['My Results'] = $html; return $results; }
Einige Dinge am Rande:
- Zweierlei Dinge werden an den Filter weitergereicht. Das erste ist der Array der Ergebnisse, dem du deine Ergebnisse hinzufügst. Das zweite ist der Suchstring. Denke daran Benutzereingaben zu maskieren!
- Mithilfe des Array-Schlüssels, dem du den HTML-Code deiner Ergebnisse zuweist (in diesem Fall „My Results“), werden der „Jump To“-Link zu Beginn der Seite sowie die ID des Elements, welches deine Ergebnisse enthält, generiert. Wähle bitte einen eindeutigen Schlüssel!
- Du kannst deinen HTML-Code nach Belieben bearbeiten. Wir haben zur Erstellung des Inhalts
WP_List_Table
s verwendet, da uns diese Darstellung gefällt. Wenn du möchtest, kannst du deine Ergebnisse aber auch gerne in einer Liste floatenderDiv
s anzeigen. - Wenn du die gleiche maximale Anzahl an Ergebnissen wie für alles andere benutzen möchtest, so verwende
apply_filters( 'omnisearch_num_results', 5 );
- Wenn du die maximale Anzahl an Ergebnissen, die von jedem Modul bereitgestellt wird, überschreiben möchtest, dann hänge dich in den
omnisearch_num_results
Filter ein. - Wenn du eine Suchanfrage startest, die erwartungsgemäß eine Weile dauern könnte, wie zum Beispiel das Erfassen einer externen API, dann solltest du deine Ergebnisse mit AJAX laden. Wir haben die Globals
search_term
undnum_results
im Javascript bereits für dich festgelegt. Du kannst dir ein Beispiel zum Laden von Ergebnissen mit Ajax in derJetpack_Omnisearch_Plugins
class ansehen.