Ich habe folgendes:
$queryResponse = new \WP_Query(array( 'post_type' => 'portfolio', 'tax_query' => array( array( 'taxonomy' => 'portfolio_date', 'field' => 'name', 'term' => $dateSelected ) ) )); var_dump($queryResponse);
$dateSelected
ist ‘2015’.
Ich möchte: Alle Posts vom Post-Typ des Portfolios mit einer benutzerdefinierten Taxonomie von Portfolio_Datum (Tatsächlicher Name: Portfolio-Datum. Dies ist, was der Benutzer sieht), die den Wert von, in diesem Fall, 2015 hat.
Also, wenn ich 6 Posten unter dem Portfolio mit dem Portfoliodatum von 2015 erstelle, sollte ich 6 Posten zurückbekommen. Gerade jetzt bekomme ich: 0 Beiträge.
Ich habe 1 Post unter diesem Post-Typ mit dieser Taxonomie.
Sie haben hier ein oder zwei Probleme und mögliche zukünftige Fehler, die auftreten können
term
in Ihrer tax_query
sollte terms
Seien Sie vorsichtig mit Begriffen, die Daten als Namen und vor allem Daten als Nacktschnecken haben. Dies kann zu Problemen und unerwarteten Ergebnissen führen, wenn benutzerdefinierte Permalinks zusammenstoßen oder wenn aus irgendeinem Grund etwas in die Vorlagenhierarchie fällt.
Verwenden Sie das tax_query
nie in einer tax_query
. Es gibt ein Problem mit der Bereinigung des Begriffnamens, bevor die Join-Klausel für die SQL-Abfrage in der WP_Tax_Query
class erstellt wird. Dies ist ein bekannter Fehler, der wahrscheinlich für viele zukünftige Versionen vorhanden sein wird.
Ich habe das vollständige Problem in dieser Antwort, die ich kürzlich gemacht habe, erklärt, also fühlen Sie sich frei, die ganzen 9 Yards zu lesen. Kurz gesagt, was grundsätzlich passiert, ist, dass WP_Tax_Query
verwendet, um die Eingabe aus dem tax_query
in einer tax_query
. Diese function entfernt alle Leerzeichen und Sonderzeichen und konvertiert alle Großbuchstaben in Kleinbuchstaben. So wird ein Begriff wie My Term Name/2
in my-term_name2
konvertiert, was fehlschlägt, da dieser Begriff nicht existiert.
Kurz gesagt, verwenden Sie das name
Feld in einer tax_query
nicht als Vorsichtsmaßnahme, sondern verwenden term_id
eher term_id
oder slug
. Wenn Sie diese Werte nicht kennen, verwenden Sie get_term_by()
, um den Begriff ID oder Slug aus dem Namen tax_query
und dann an die tax_query
Sie sollten außerdem sicherstellen, dass Sie Beiträge aus Ihrer benutzerdefinierten Taxonomie und benutzerdefinierten Beitragstyp öffentlich abfragen können. Stellen Sie sicher, dass bei der Registrierung des Posttyps und der Taxonomie die richtigen Werte festgelegt sind