it-swarm.com.de

Suche nach benutzerdefinierten Beitragstypen und Taxonomien

Die Site, die ich baue, verfügt über ein Verzeichniselement, das viele verschiedene Brancheneinträge enthält. Dies ist ein benutzerdefinierter Beitragstyp. Es gibt eine benutzerdefinierte Taxonomie namens "Trades", in der verschiedene Arten von Unternehmen aufgeführt sind, z. B. Klempner, Elektriker, Dekorateure, Buchhalter usw. Ich habe ein Suchformular geschrieben und es in searchform.php eingefügt, das dann von get_search_form() aufgerufen wird. Hier ist es:

<form role="search" class="main-search" action="<?php bloginfo('home') ?>" method="get">
    <div class="search-container">
        <input type="text" class="main-search-field" placeholder="Search for a service..."  name="s" id="s">
    </div>
    <input type="hidden" name="post_type" value="directory">
    <div class="submit-container">
        <button type="submit" class="main-submit-btn">Search</button>
    </div>
</form>

Wie Sie sehen, habe ich die Suche auf meinen benutzerdefinierten Beitragstyp ("Verzeichnis") eingegrenzt, bin mir jedoch nicht sicher, wie ich sie weiter eingrenzen soll. Wenn Text in das Suchfeld eingegeben wird und der Benutzer die Eingabetaste drückt, soll er im Wesentlichen alle meine Fachbegriffe durchsuchen, anstatt die Titel/Inhalte der Beiträge zu durchsuchen. Weiß jemand, wie ich das machen würde?

Danke für jede Hilfe :)

1
Tom Oakley

Im Moment habe ich die Standardsuchzeichenfolge (www.sitedomain.com/?s=keyword) auf www.sitedomain.com/trade/keyword umgeleitet (Handel ist meine benutzerdefinierte Taxonomie), obwohl ich mir ziemlich sicher bin, dass dies nicht der richtige oder beste Weg ist, also wäre es großartig, wenn jemand dies tut sonst hat man eine bessere lösung. Hier ist der Code zum Umleiten der Suchzeichenfolge:

function redirect_search() {
    if ( is_search() && ! empty( $_GET['s'] ) ) {
        wp_redirect( home_url( "/trade/" ) . urlencode( get_query_var( 's' ) ) );
        exit();
    }
} add_action( 'template_redirect', 'redirect_search' );
1
Tom Oakley