Passen Sie die Suche an, um nur den aktuellen benutzerdefinierten Posttyp zu suchen

Ich habe 3 benutzerdefinierte Beitragstypen und möchte, dass das Such-Widget nur den benutzerdefinierten Beitragstyp durchsucht, auf dem es sich gerade befindet. dh. Wenn cpt_1 (Single oder Archiv) angezeigt wird und jemand das Such-Widget in der Seitenleiste verwendet, sollte es nur Ergebnisse von cpt_1 zurückgeben. Ähnlich sollte cpt_2 und Suche nur cpt_2 Ergebnisse zurückgeben.

Ich habe es versucht:

is_search ) { $query->set( 'post_type', array( 'cpt1' ) ); } return $query; } function search_cpt2( $query ) { if ( $query->is_search ) { $query->set( 'post_type', array( 'cpt2' ) ); } return $query; } if ( 'cpt1' == get_post_type() ) { add_filter( 'pre_get_posts', 'search_cpt1' ); } if ( 'cpt2' == get_post_type() ) { add_filter( 'pre_get_posts', 'search_cpt2' ); } ?> 

Ich habe es auch ohne Erfolg versucht:

 is_search )) { $query->set( 'post_type', array( 'cpt1' )); } if (('cpt2' == get_post_type()) && ( $query->is_search )) { $query->set( 'post_type', array( 'cpt2' )); } return $query; } add_filter( 'pre_get_posts', 'jc_search_cpts' ); 

Solutions Collecting From Web of "Passen Sie die Suche an, um nur den aktuellen benutzerdefinierten Posttyp zu suchen"

Sie müssen die Datei searchform.php in Ihrem Themenverzeichnis ändern.

Um nach aktuellen Post-Posts zu suchen, fügen Sie folgenden Code in das Formular ein!

 $post_type = get_post_type(); if($post_type){ echo ''; } 

Ich konnte dies tun, indem ich ein benutzerdefiniertes Suchformular anlege, indem ich Folgendes hinzufüge:

  

Also, mein Suchformular sieht so aus: