2016-03-31 15 views
0

Ich habe zwei Post-Typen. Ich muss Inhalt von jedem innerhalb der gleichen Schleife anzeigen. Im Moment kann ich den Post-Typ "Freigaben" aufrufen, um Inhalte anzuzeigen, aber ich muss auch den Post-Typ "Künstler" aufrufen, um einige Inhalte im selben DIV anzuzeigen.Wordpress Advanced Benutzerdefinierte Felder zeigen zwei Felder aus zwei verschiedenen Post-Typen in einer Vorlage

Die folgende Zeile bricht die Seite mit einem 'Catachable fatalen Fehler: Objekt der Klasse WP_Post konnte nicht in String-Fehler konvertiert werden'.

<?php the_field('release_artist_name'); ?> 

Wie bekomme ich das release_artist_name Feld zu stoppen die Website zu brechen? Es ist ein Feld über ein Post-Objekt (Post-Typ heißt "Künstler"). Jede Hilfe wird geschätzt.

<?php 
     $posts = get_posts(array(
     'post_type'  => 'releases' 
    ) 
     )); 

     if($posts): ?> 
    <?php foreach($posts as $post): 
     setup_postdata($post)  
     ?> 
<div> 
    <?php the_title(); ?> // THIS COMES FROM RELEASES POST TYPE 
    <?php the_field('release_artist_name'); ?> // THIS SHOULD COME FROM ARTISTS POST TYPE BUT BREAKS THE PAGE 
</div> 

    <?php endif; ?> 
    <?php endforeach; ?> 
    <?php wp_reset_postdata(); ?> 
    <?php endif; ?> 

Was unten gefragt, ergibt sich aus der print_r ($ posts) ...

Array ([0] => WP_Post Object ([ID] => 10661 [post_author] => 1 [post_date] => 2016-03-31 02:37:57 [post_date_gmt] => 2016-03-31 02:37:57 [post_content] => [post_title] => New Gold Mountain [post_excerpt] => [post_status] => publish [comment_status] => closed [ping_status] => closed [post_password] => [post_name] => new-gold-mountain [to_ping] => [pinged] => [post_modified] => 2016-03-31 04:41:04 [post_modified_gmt] => 2016-03-31 04:41:04 [post_content_filtered] => [post_parent] => 0 [guid] => http://127.0.0.1:4001/wordpress/?post_type=releases&p=10661 [menu_order] => 0 [post_type] => releases [post_mime_type] => [comment_count] => 0 [filter] => raw) 
+0

Können Sie bitte 'print_r ($ posts)'? und füge es zu deiner Frage hinzu? – Milap

+0

Ich habe das getan, und es gibt überhaupt keinen Verweis auf den Post-Typ 'Künstler'. Woher kommt das Problem? – lowercase

+0

'$ Beiträge = get_posts (Array ('post_type' => 'Releases')));' Unter diesem Code, fügen Sie 'print_r ($ posts);' und Seite aktualisieren, sehen was Ausgabe? – Milap

Antwort

2

Wenn Sie einen Post-Typ für artists haben und Sie verwenden ACF, in Ihrem releases Post Art Sie sollten ein benutzerdefiniertes Feld mit dem Namen release_artist (zum Beispiel) vom Typ Post Object hinzufügen, in dem Sie den Künstler (oder die Künstler) für ein Release zuordnen können. Ich empfehle Ihnen, dieses Feld zu setzen, um Post ID anstelle von Post Objekt zurückgeben.

Dann in der Schleife, erhalten Sie die Künstler-ID:

$artist_id = get_field('release_artist'); 

So können Sie diese ID verwenden beliebige benutzerdefinierte Feld des Künstlers abfragen:

$artist_name = get_field('artist_name', $artist_id); 

Beachten Sie, dass alle ACF Funktionen übernehmen ein zweiter Parameter mit einer Post-ID, um andere Posts abzufragen, wenn Sie sich zum Beispiel in der Schleife befinden.

Siehe get_field Dokumentation. Hoffe das hilft.

Verwandte Themen