get_posts kann nicht aus bestimmten Kategorien greifen

Ich benutze get_posts, um eine Liste mit Posts von benutzerdefiniertem post_type zu erhalten. Ich möchte auch, dass die Liste auf bestimmte Kategorien beschränkt ist. Also habe ich es versucht:

$postslist = get_posts('order=ASC&orderby=date&posts_per_page=4&post_type=tribe_events&category_name=Gudauri'); 

Dies zeigt nichts an, wenn ich category_name = Gudauri lösche, listet es alle Beiträge vom benutzerdefinierten Beitragstyp tribe_events auf.

Was mache ich falsch? Ich habe auch Kategorie = ID versucht, aber ohne Glück!

Solutions Collecting From Web of "get_posts kann nicht aus bestimmten Kategorien greifen"

Bearbeiten

Als Antwort auf die Antwort von OP:

Sie verwenden post_type und fügen cat am Ende hinzu. Wie [tribe_events][_cat]=[value]

Das ist absolut falsch. WordPress erstellt auf diese Weise nicht automatisch benutzerdefinierte Taxonomien.

Aus dem Kommentar des OP:

Ich verwende einen Stamm-Veranstaltungskalender. Überprüfen Sie es dort.

Hier ist die relevante PHP-Datei aus dem Event Calendar Plugin. Und hier sind die wichtigsten Codezeilen:

 const TAXONOMY = 'tribe_events_cat'; const POSTTYPE = 'tribe_events'; 

…und…

 register_taxonomy( self::TAXONOMY, self::POSTTYPE, array( /**snipped*/)); 

Wie vermutet: Das Plugin registriert einen benutzerdefinierten Post-Typ und registriert dann eine benutzerdefinierte Taxonomie , die für diesen benutzerdefinierten Post-Typ verwendet werden soll.

Ursprüngliche Antwort

Sie haben also einen benutzerdefinierten 'tribe_events' . Zwei wichtige Punkte:

  1. Standardmäßig haben benutzerdefinierte Post-Typen keine registrierten / unterstützten Taxonomien, einschließlich der category Taxonomie .
  2. Standardmäßig wird die Taxonomie 'category' nur vom 'post' Post-Typ registriert / unterstützt.

Um die 'category' für einen benutzerdefinierten Posttyp zu verwenden, müssen Sie eines der folgenden Dinge tun:

  1. Fügen Sie dem vom benutzerdefinierten Beitragstyp unterstützten Taxonomie-Array 'category' über den Parameter 'taxonomies' des Argumentarrays register_post_type() :

     register_post_type( 'tribe_events', array( 'taxonomies' => array( 'category' ) ) ); 
  2. Fügen Sie 'category' Taxonomie für den benutzerdefinierten Posttyp über register_taxonomy_for_object_type() :

     register_taxonomy_for_object_type( 'category', 'tribe_events' ); 

In Bezug auf Ihre vorgeschlagene “Lösung”

Von deiner Antwort:

Sie verwenden post_type und fügen cat am Ende hinzu. Wie [Stamm_Ereignisse] [_ Katze] = [Wert]

Ich kenne im core absolut nichts, was automatisch eine {post-type}_cat Taxonomie erzeugen würde, oder die eine Taxonomie vom {post-type}_cat mit der category gleichsetzen würde.

Was ich hier vermute , ist, dass Sie eine benutzerdefinierte Taxonomie 'tribe_events_cat' registriert haben und diese benutzerdefinierte Taxonomie dann über den Parameter 'taxonomies' in register_post_type() zu Ihrem benutzerdefinierten Beitragstyp hinzugefügt haben .

Wenn dies der Fall ist, dann:

  1. Ihre Frage ist irreführend, weil Sie angeben, dass Sie die Taxonomie 'category' in Ihrer Abfrage verwenden möchten
  2. Ich würde sehr empfehlen, sich die Gewohnheit zu nehmen, auf eine benutzerdefinierte Taxonomie als Taxonomie und nicht als Kategorie zu verweisen. “Kategorie” ist eine Taxonomie; Nicht alle Taxonomien sind “Kategorie”.