Ich habe zwei benutzerdefinierte Taxonomien, die auf zwei benutzerdefinierte Beitragstypen angewendet werden. Die Begriffsliste in der Seitenleiste ist in Ordnung und listet alle damit verbundenen Beiträge auf. Wenn Sie jedoch nach einem bestimmten Begriff suchen, wird kein Beitrag mit diesem Begriff angezeigt.
Beispiel: http://dev.andrewnorcross.com/das/all-case-studies/ Nach Begriff "PQRI" suchen
Ich bekomme nichts Irgendwelche Ideen? Ich habe versucht, verschiedene Such-Plug-ins zu verwenden, aber sie stören entweder meine benutzerdefinierten Suchparameter oder funktionieren einfach nicht.
custom-post-types
custom-taxonomy
search
Norcross
quelle
quelle
Antworten:
Ich würde auch das Plugin Search Everything empfehlen , aber wenn Sie dies mit der Suchfunktion von WP implementieren möchten, finden Sie hier den Code, den ich in meinem Atom-Theme verwende:
Es basiert auf dem Tag-Search-Plugin: http://projects.jesseheap.com/all-projects/wordpress-plugin-tag-search-in-wordpress-23
quelle
is_search()
oder andere WP_Query- Methodenaufrufe (is_search()
is_home()
usw.) sollten immer direkt in der Abfrageinstanz aufgerufen werden (z. B.$query->is_search()
unter der Annahme, dass der Name der Instanzvariablen$query
in der Rückrufsignatur enthalten ist) und nicht in der Vorlagenfunktion, die sich immer auf die Hauptabfrage bezieht , nicht die Abfrage, für die der Filter ausgeführt wird.Ist dies die Standard-WordPress-Suche? Denn das scheint Taxonomien (nicht einmal Standard, wie Kategorien und Tags) in die Suche einzubeziehen. Der Code sucht in
post_title
undpost_content
, aber wenn Sie noch etwas einschließen möchten, sollten Sie sich in denposts_search
Filter einbinden.quelle
Ich habe die Lösung von Onetrickpony über https://wordpress.stackexchange.com/a/5404/37612 ausprobiert , was großartig ist, aber ich habe dort ein Problem gefunden, das bei mir nicht funktioniert hat, und ich würde eine kleine Änderung vornehmen:
Wenn die Taxonomie Sonderzeichen enthält, z. B. mit deutschen "Umlauten" (ö, ä, ü), und nach oe, ae, ue insteda mit dem Sonderzeichen gesucht wird, müssen Sie die Suche in den Slug der Taxonomie einfügen.
OR t.slug LIKE '%".get_search_query()."%'
Wenn Sie nach einer Kombination aus einer Suchabfrage und einem Taxonomiefilter suchen, funktioniert dies ebenfalls
Das Problem ist jedoch, dass beim Versuch, nur den Taxonomiefilter zu verwenden, der Suchhaken eine leere Zeichenfolge an die Abfrage anfügt, wenn kein Text gesucht wird. Aus diesem Grund werden ALLE Posts im Ergebnis angezeigt, anstatt nur die aus dem gefilterte Taxonomie. Eine einfache IF-Anweisung löst das Problem. Also wäre der gesamte modifizierte Code dieser (funktioniert perfekt für mich!)
quelle
Ich habe den gleichen Informationsstand wie Jan. Ich weiß, dass es auch möglich ist, die Suche mit Plugins zu erweitern.
Wahrscheinlich ist Search Everything (Wordpress Plugin) genau das, wonach Sie suchen. Entsprechend der Featureliste werden jetzt benutzerdefinierte Taxonomien unterstützt.
quelle
Ich fand die Antwort von onetrickpony großartig, aber es behandelt jede Suche als einen einzelnen Begriff und behandelt auch keine Suchphrase, die in Anführungszeichen eingeschlossen ist. Ich habe seinen Code (insbesondere die
atom_search_where
Funktion) ein wenig geändert , um mit diesen beiden Situationen fertig zu werden. Hier ist meine modifizierte Version seines Codes:quelle
Ich habe das gleiche Problem mit dem WooCommerce-Warenkorb-Plugin. Meine Suchergebnisse enthalten nicht den benutzerdefinierten Taxonomiebegriff 'product_tag', da es sich nicht um einen Standard-Post-Tag handelt. In diesem anderen StackOverflow-Thread habe ich eine Lösung zu diesem Thema gefunden:
https://stackoverflow.com/questions/13491828/how-to-amend-wordpress-search-so-it-queries-taxonomy-terms-and-category-terms
Das Codebeispiel von tkelly hat für mich funktioniert, als der Begriff
author
in seinem Beispiel durch den ersetzt wurde, denproduct_tag
wir für die Cart-Plugins benötigt haben.quelle