SearchWP Documentation

Sehen Sie sich die Installationsanleitung an, durchsuchen Sie die Wissensdatenbank und erfahren Sie mehr über die vielen Hooks von SearchWP

So zeigen Sie den Beitragstyp-Label in Suchergebnissen an

Bei Verwendung der Standard-WordPress-Suche werden die Ergebnisse über die integrierte Suchvorlagendatei Ihres Themes (normalerweise search.php genannt) angezeigt. Die meisten WordPress-Themes enthalten standardmäßig keine Informationen zum Beitragstyp in ihren Suchergebnissen, sondern zeigen nur den Beitragstitel, den Auszug und andere Standardelemente an. Wenn Sie das Label des Beitragstyps (z. B. „Beitrag“, „Seite“, „Produkt“ usw.) neben jedem Suchergebnis anzeigen möchten, müssen Sie eine kleine Anpassung vornehmen, entweder durch Bearbeiten der Suchvorlage Ihres Themes oder durch die Verwendung von WordPress-Hooks.

Der erste Ansatz besteht darin, die Suchvorlagendatei Ihres Themes manuell zu bearbeiten. Innerhalb der Hauptschleife der Suche können Sie die Funktion get_post_type_object() verwenden, um das Label des Beitragstyps für jedes Ergebnis abzurufen und anzuzeigen. Dies gibt Ihnen die vollständige Kontrolle darüber, wo und wie die Informationen zum Beitragstyp im Layout der Suchergebnisse erscheinen. Alternativ können Sie einen WordPress-Filter-Hook verwenden, um das Label des Beitragstyps automatisch vor den Titel jedes Suchergebnisses zu stellen. Dieser Ansatz ist einfacher und erfordert keine Änderung Ihrer Theme-Dateien. Sie können den folgenden Ausschnitt hinzufügen, indem Sie ein SearchWP Customizations Plugin vorbereiten oder einen Code-Snippet-Manager wie WPCode verwenden:

<?php
// Prepend post type label to title for native main search
add_filter( 'the_title', function( $title, $post_id ) {
if ( in_the_loop() && ( is_search() || isset( $_REQUEST['swps'] ) ) ) {
$post_type_obj = get_post_type_object( get_post_type( $post_id ) );
if ( $post_type_obj && ! empty( $post_type_obj->labels->singular_name ) ) {
$label = esc_html( $post_type_obj->labels->singular_name );
$title = sprintf( '<span class="search-post-type">%s:</span> %s', $label, $title );
}
}
return $title;
}, 10, 2 );

Dieser Code stellt sicher, dass immer dann, wenn ein Benutzer eine Suche durchführt, der Name des Beitragstyps (wie z. B. „Seite“ oder „Produkt“) vor dem Titel jedes Ergebnisses in der Liste der Suchergebnisse angezeigt wird. Er verwendet den WordPress-Filter the_title() und prüft, ob die aktuelle Schleife Teil einer Suchanfrage ist, bevor die Änderung angewendet wird.

Wenn Sie die benutzerdefinierten Vorlagenergebnisse oder die Live-Suche von SearchWP verwenden, wird der obige Hook nicht automatisch angewendet, da diese Ergebnisse anders generiert werden. Stattdessen können Sie die eigenen Filter-Hooks von SearchWP verwenden, um die Ausgabe jedes Ergebnis-Eintrags zu ändern. Das folgende Beispiel zeigt, wie das Label des Beitragstyps vor dem Titel sowohl für die SearchWP-Vorlage als auch für die Live-Suchergebnisse eingefügt wird:

Hier ist ein Beispiel mit einem Fallback-Bild:

<?php
// Display post type label before title for SearchWP template and live search results
function prepend_post_type_to_title( $data, $result ) {
if ( $result instanceof \WP_Post ) {
$post_type_obj = get_post_type_object( get_post_type( $result ) );
if ( $post_type_obj && ! empty( $post_type_obj->labels->singular_name ) ) {
$label = esc_html( $post_type_obj->labels->singular_name );
$data['title'] = $label . ' - ' . $data['title'];
}
}
return $data;
}
// Hook for SearchWP template
add_filter( 'searchwp\results\entry\data', function( $data, $result ) {
return prepend_post_type_to_title( $data, $result );
}, 20, 2 );
// Hook for SearchWP Live Search
add_filter( 'searchwp_live_search_results_entry_data', function( $data, $result ) {
return prepend_post_type_to_title( $data, $result );
}, 20, 2 );

Mit dieser Anpassung zeigt SearchWP automatisch den Namen des Beitragstyps vor dem Titel sowohl in den benutzerdefinierten Suchvorlagenergebnissen als auch in der Live-Such-Dropdownliste an. Diese Methode bietet eine flexible und codefreundliche Möglichkeit, den Benutzern zusätzlichen Kontext über die Art der Inhalte zu geben, die sie in den Suchergebnissen sehen, ohne Ihre Theme-Dateien direkt zu ändern.

Erstellen Sie noch heute eine bessere WordPress-Sucherfahrung

Verlieren Sie nie wieder Besucher an unzureichende Suchergebnisse. SearchWP macht die Erstellung Ihrer eigenen intelligenten WordPress-Suche schnell und einfach.

Get SearchWP Now
Symbol für mehrere Suchmaschinen