Zeitplan für benutzerdefinierte Meta-Daten mit benutzerdefinierten Post-Typ und benutzerdefinierten Taxonomie

Szenario:

Ich habe einen benutzerdefinierten Post-Typ mit benutzerdefinierten Meta-Boxen. Jeder Beitrag sollte eine Zeile in meiner Tabelle darstellen, dh

Activity 1 Jan, Activity 1 Feb and Activity 1 Mar 

Ich habe eine benutzerdefinierte Taxonomie von Begriffen für meine Aktivitätstypen:

 Activity 1, Activity 2 and Activity 3. 

ich benutze

 archive-custom-post.php 

um meine benutzerdefinierten Taxonomiebegriffsverknüpfungen aufzulisten, und

 taxonomy-custom.php 

um jede Aktivitätstabelle anzuzeigen.

Edit: Weitere Klarheit.

Meine Frage ist – wie frage ich die Metadaten aller Posts ab, die dem Termotyp “Aktivität 1” zugeordnet sind? Ich bin in der Lage, den aktuellen Post mit get_post_custom abzufragen, aber das ist nicht genug. Sollte ich auf WP_Query schauen?

Bearbeiten: Beispiel für Aktivitätsdaten

  • Start- und Enddatum
  • Dauer
  • Kosten
  • Paypal-Taste

Vielen Dank

Solutions Collecting From Web of "Zeitplan für benutzerdefinierte Meta-Daten mit benutzerdefinierten Post-Typ und benutzerdefinierten Taxonomie"

Dies ist meine eigene Lösung, Verbesserungen willkommen 🙂

Überprüfen Sie nach Begriff ID und zuweisen zu Variable.

 $term_id = (has_term('activity_1','activity-tax') ? 1 : (has_term('activity_2','activity-tax') ? 2 : (has_term('activity_3','activity-tax') ? 3 : ''))); 

Verwenden Sie die Variable “term ID” in meinen Parametern “get_posts”.

 $args = array( 'post_type' => 'activity-post', 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'activity-tax', 'field' => 'term_id', 'terms' => $term_id) // Only the ID I want ) ); $posts = get_posts($args); 

Führen Sie jeden Post durch und erstellen Sie ein Mehrfaches von Metadaten.

 $custom_post = array(); foreach ($posts as $post) { $custom_post[] = get_post_custom($post->ID); } 

Schließlich erhalten Sie die gewünschten Metadaten des Arrays.

 foreach ( $custom_post as $key => $value ) { echo $value['date'][0].'
'; echo $value['duration'][0].'
'; echo $value['paypal'][0]; }