Angenommen, ich habe einen benutzerdefinierten Beitragstyp mit dem Namen "Darsteller". Dies wird mit verschiedenen Bands/Interpreten besetzt. Diese Beiträge enthalten ein Bild sowie benutzerdefinierte Felder (MP3-Datei, Facebook-Link, MySpace-Link usw.).
Ich habe einen anderen benutzerdefinierten Beitragstyp namens "Ereignisse".
Wenn ich einen neuen Event-Beitrag erstelle, möchte ich, dass in einem Drop-Box eine der Bands aus dem benutzerdefinierten Beitragstyp "Darsteller" ausgewählt wird.
Dadurch werden alle Daten der jeweiligen Band/des Interpreten in den Ereignisbeitrag eingefügt (benutzerdefinierte Felder, vorgestellte Bilder usw.).
Was ist die beste Methode zum Einfügen/Injizieren einer solchen Schleife vom "Event" -Administrator?
Derzeit ist der beste Weg, wie ich damit umgehen kann, der Posts 2 Posts-Plugin :
Hier ist ein Beispiel, das zeigt, wie Sie die benutzerdefinierten Beitragstypen (falls Sie sie bereits haben, ist es eher für andere, die dies lesen) sowie den Funktionsaufruf für p2p_register_connection_type()
, der von der benötigt wird, einrichten Plugin zum Einrichten der Post-Beziehungen. Dies kann in die functions.php
-Datei Ihres Themas oder in eine .PHP
-Datei für ein Plug-in gehen, das Sie möglicherweise schreiben:
add_action('init','event_performer_init');
function event_performer_init() {
register_post_type('event',
array(
'label' => 'Events',
'public' => true,
'show_ui' => true,
'query_var' => 'event',
'rewrite' => array('slug' => 'events'),
'hierarchical' => true,
//'supports' => array('title','editor','custom-fields'),
)
);
register_post_type('performer',
array(
'label' => 'Performers',
'public' => true,
'show_ui' => true,
'query_var' => 'performer',
'rewrite' => array('slug' => 'performers'),
'hierarchical' => true,
//'supports' => array('title','editor','custom-fields'),
)
);
if ( function_exists('p2p_register_connection_type') )
p2p_register_connection_type( 'event', 'performer' );
global $wp_rewrite;
$wp_rewrite->flush_rules(false); // This only needs be done first time
}
Dann können Sie in der Vorlagendatei Ihres Themas single-event.php
den folgenden Code hinzufügen, um Informationen zu jeder Band anzuzeigen (Ich habe die Grundlagen hier gezeigt; ich überlasse es Ihnen, alle Details auszufüllen und/oder andere zu fragen Genauere Fragen hier auf der WordPress Answers-Website, z. B., ob Sie wissen müssen, wie Sie das vorgestellte Bild erhalten, usw.)
<?php
if (count($performers = p2p_get_connected($post->ID))) {
foreach($performers as $performer_id) {
$performer = get_post($performer_id);
echo 'The Band: ' . apply_filters('the_title',$performer->post_title);
echo 'Facebook Link: ' . get_post_meta($post->ID,'facebook_link',true);
}
}
?>