it-swarm.com.de

Wie füge ich Inhalte von einem anderen benutzerdefinierten Beitragstyp in den Beitrag ein?

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?

1
Joe

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);
    }
  }
?>
3
MikeSchinkel