it-swarm.com.de

Verknüpfung von zwei Beitragstypen

und vielen Dank im Voraus für Ihre Hilfe.

Ich habe ein bisschen gesucht und diese Frage wurde ein paar Mal mit Bezug auf das Plugin "posts 2 posts" beantwortet, aber die Dokumentation dazu ist sehr "coder-zentriert" - ich kann und kann meine Hände schmutzig, aber ich benötige eine bessere Schritt-für-Schritt-Dokumentation als die dort verfügbaren. :)

Hier ist was ich brauche. Ich benutze gPress , um "Orte" mit ihrem benutzerdefinierten Beitragstyp zu generieren. Das funktioniert erstaunlich gut. Was ich tun muss, ist in der Lage zu sein, einem Ort "Ereignisse" hinzuzufügen. Ich kann einen benutzerdefinierten Beitragstyp verwenden, um alle Ereignisdetails zu erfassen, möchte dann aber Ereignisse an einen bestimmten Ort anhängen können und umgekehrt. Wenn jemand den Ereignisbeitrag angesehen hat, gibt es eine einfache Möglichkeit, auch die Ortsinformationen zum Ereignis abzurufen.

Anregungen sind willkommen!

8
John

ScribusPosts-to-Posts ist ein großartiges und einfaches Plugin. Ich bin sicher, wir können Ihnen dabei helfen, es zum Laufen zu bringen. Die grundlegende Verwendung ist ziemlich einfach.

angenommen, Ihre benutzerdefinierten Beitragstypen heißen 'place' und 'event', wird der folgende Code in die functions.php-Datei Ihres Themas eingefügt:

function my_connection_types() {
    p2p_register_connection_type( array(
        'name' => 'events_to_places', 
        'from' => 'event',
        'to' => 'place',
    ) );
}
add_action( 'p2p_init', 'my_connection_types', 100 );

dadurch werden die Meta-Felder zum Zuweisen von Beziehungen in Ihren benutzerdefinierten Nachbearbeitungsbildschirmen verfügbar.

für Ihre einzelnen Orts- und Ereignisseiten können Sie benutzerdefinierte Vorlagen in Ihrem Design erstellen, die der WordPress Vorlagenhierarchiesingle-{post_type}.php folgen. In Ihrem Fall also single-event.php und single-place.php. Sie können diese aus der single.php-Vorlage duplizieren.

um Verbindungen aufzulisten, brauchen wir nur ein bisschen Code in diesen Vorlagen, wo immer wir die Liste ausgeben möchten. Dies würde in die Ortsvorlage gehen und verbundene Ereignisse ausgeben:

<?php
$connected = new WP_Query( array(
    'connected_type' => 'events_to_places', 
    'connected_items' => get_queried_object()
) );

echo '<p>Related events:</p>';
echo '<ul>';
while( $connected->have_posts() ) : $connected->the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;
echo '</ul>';

wp_reset_postdata();
?>
9
Milo