So leiten Sie zum Beitrag um, wenn die Suchergebnisse nur einen Beitrag zurückgeben


7

Ich möchte nach einer Suche Besucher zu meiner search.php senden, um eine Liste der Beiträge anzuzeigen. Wenn es nur ein Suchergebnis gibt, kann der Benutzer direkt auf den betreffenden Beitrag zugreifen (so etwas wie die Schaltfläche "Ich fühle mich glücklich" von GOOGLE).

Danke euch allen.

Antworten:


11

Fügen Sie dieses Snippet Ihrer functions.php hinzu

function redirect_the_single_post() {
    if (is_search() && is_main_query()) {
        global $wp_query;
        if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
            exit;
        }
    }
} 
add_action('template_redirect', 'redirect_the_single_post' );

hoffe das wird dir helfen !!


5
+1 dafür. Sie könnten / sollten jedoch auch prüfen, ob dies die Hauptabfrage ist, sodass ich die erste Zeile in folgende ändern würde : if (is_search() && is_main_query()) {. Und der Permalink kann auch generiert werden $GLOBALS['post']->ID- aber das ist nicht so viel kürzer. ;) Es geht aber darum, eine Eigenschaft eines Elements eines Arrays abzurufen. In Ihrem Code geht es darum, eine Eigenschaft eines Elements eines Arrays abzurufen, das eine Eigenschaft eines anderen Objekts ist.
Anfang

1
@AbhishekKaushik, nimm den Punkt und füge ihn der Antwort hinzu. Die Leute werden Ihr Snippet in den kommenden Jahren kopieren / einfügen, besser verbessern, nicht wahr? ;)
brasofilo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.