So finden Sie Taxonomie-Namen nur mit Taxonomie-TERM-ID (oder Taxonomie-Term-Name)

Ich entwickle eine Mehrfachsuchfilterfunktion und ich muss die Suchergebnisseite filtern.

Ich habe 3 benutzerdefinierte Post-Typen, jeder mit seiner benutzerdefinierten Taxonomie. So habe ich die benutzerdefinierten Post-Typen:

  1. CPT- Bücher;
  2. CPT Früchte;
  3. CPT Autos

Für jeden dieser benutzerdefinierten Posttypen ist eine benutzerdefinierte Taxonomie angehängt. Also haben wir

  1. CPT Bücher mit Taxonomie Bücher-Kategorie
  2. CPT Früchte mit Taxonomie Frucht-Kategorie
  3. CPT Autos mit Taxonomie Autos-Kategorie

Und jede dieser benutzerdefinierten Taxonomien hat ein paar Begriffe in ihnen. Also haben wir:

  1. CPT Bücher mit Taxonomie Bücher-Kategorie, mit Begriffen : Drama, Verbrechen, Abenteuer
  2. CPT Früchte mit Taxonomie Obst-Kategorie mit Begriffen : Apfel, Orange, Banane
  3. CPT Autos mit Taxonomie Autos-Kategorie mit Bezeichnungen : Mercedes, Ford

In der searchform.php habe ich die Sucheingabe UND eine function, die ALLE Begriffe aus ALLEN meinen eigenen Taxonomien erhält und in ein Drop-Down-Feld legt.

So sieht das HTML so aus:

  • Categories:
  • All categories Adventure Apples Banana Crime Drama Ford Mercedes Orange

Wenn ein Benutzer die Sucheingabe leer lässt, in dieser Dropdownliste jedoch einen Taxonomiebegriff auswählt, muss die Suchseite meine Suchergebnisse so filtern, dass nur benutzerdefinierte Posttypen angezeigt werden, die unter diesem Taxonomiebegriff abgelegt wurden.

Das große Geheimnis hier ist, wie ich einen Weg finden kann, den TAXONOMY-NAMEN in der WP_Query-class zu verwenden, mit der Tatsache, dass ich den TERM-NAMEN und die TERM-ID habe (das “Wert” -Feld aus meinem Dropdown-Formular). Ich könnte dies leicht tun in taxonomy.php, aber hier bin ich in search.php!

Jede Hilfe würde sehr geschätzt werden 🙂

Am besten, Gabriela

Solutions Collecting From Web of "So finden Sie Taxonomie-Namen nur mit Taxonomie-TERM-ID (oder Taxonomie-Term-Name)"

Wie wäre es mit der function get_term ? Wenn Sie sich den Code anschauen, ist der SQL-Code wie folgt:

 $_term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND t.term_id = %d LIMIT 1", $taxonomy, $term) ); 

Das sollte genau das sein, was du brauchst!

In den Optionen können Sie so etwas verwenden

    

Die resultierende Formularübermittlung würde Ihnen ein Array geben, bei dem sowohl die Tax Slug Info als auch die Term ID ausgewählt wurden.