it-swarm.com.de

Ist es möglich, benutzerdefinierte Wordpress-Beitragstypen gemeinsam zu nutzen?

Ich entwickle eine Website für ein Plattenlabel und im Grunde genommen verwendet es einige benutzerdefinierte Post-Typen für verschiedene Informationen. Mein Problem ist, dass ich das Gefühl habe, dass dieselben Informationen wiederholt und nicht geteilt werden.

Ich habe einen benutzerdefinierten Post-Typ für Künstler, aber auf der Homepage gibt es auch ein Karussell mit Künstlern, aber verschiedene Informationen, die angezeigt werden sollen. Ich habe also einen benutzerdefinierten Post-Typ "Homepage-Karussell", dessen Namen und Informationen ich eingeben muss, sowie ein Bild und einen benutzerdefinierten Post-Typ "Künstler" mit einigen der gleichen Informationen, die erneut eingegeben wurden.

Der Client wird es wahrscheinlich nicht mögen, immer die gleichen Informationen in mehrere benutzerdefinierte Beitragstypen eingeben zu müssen. Ist es möglich, einen Beitragstyp von einem anderen zu erben?

Ich kann also festlegen, dass mein Post-Typ "Homepage-Karussell" von einem Post-Typ des Künstlers übernommen wird, sodass die Informationen des Künstlers weitergegeben werden und nicht erneut eingegeben werden müssen.

Gegenwärtig habe ich eine benutzerdefinierte Taxonomie namens Interpreten erstellt und alle möglichen Interpreten-Namen eingegeben. Dann wähle ich beispielsweise im Post-Typ "Homepage-Karussell" den Interpreten auf der rechten Seite als Kategorie aus. Dies funktioniert in gewisser Weise gut, Sie müssen jedoch noch einen Titel eingeben, oder es wird ein Unsinn "Automatisch speichern" als Titel gespeichert, der das Bearbeiten und Sortieren in der gesamten Spur erschwert. Gibt es vielleicht eine Möglichkeit, den Titel als die Kategorie "Künstler" festzulegen, die ausgewählt wurde?

Lassen Sie mich wissen, wenn Sie nicht ganz verstehen, und ich werde versuchen, ein bisschen mehr auszuarbeiten. Ich möchte im Grunde eine zentralisierte Liste von Künstlern und Informationen teilen, von denen ich in anderen Beitragstypen erben kann.

* Update *

Ein bisschen mehr Ausarbeitung auf meine ursprüngliche Frage.

Hier sind meine definierten Beitragstypen und die darin enthaltenen Informationen. Ich möchte eine gemeinsame Beziehung zwischen dem Beitragstyp "Künstler" und anderen Beitragstypen herstellen, die in irgendeiner Weise mit dem Künstler in Beziehung stehen.

Beitragstyp : Künstler
Felder : Titel, Wysiwyg-Editor, Empfohlenes Bild, Facebook-URL, Twitter-Benutzername, Website-URL.

Beitragstyp : homepage_carousel
Felder : Titel, Weitere Informationen Link, CD-Link kaufen, MP3-Link kaufen Ein Karussellartikel entspricht einem Künstler, der im obigen Künstlerpost-Typ definiert ist. Die Möglichkeit, diesen Beitragstyp mit dem Beitragstyp des Künstlers in Beziehung zu setzen, ist genau das, was ich möchte.

Beitragstyp : Videos
Felder : Titel, Video-Einbettungscode (455px), Video-Einbettungscode (466px), Video-Einbettungscode (608px), Videobeschreibung. Ein Videoelement entspricht einem im Post-Typ des Interpreten definierten Interpreten. Ich möchte einem Künstler ein Video zuweisen können.

Wie Sie sehen, möchte ich im Grunde eine Beziehung zwischen mehreren Personen aufbauen, oder handelt es sich um eine Beziehung zwischen mehreren Personen? Eine davon (denke ich). Ich habe angefangen, mich mit diesem Plugin zu beschäftigen: http://wordpress.org/extend/plugins/posts-to-posts/ - aber ich tue es nicht Ich verstehe noch nicht, wie man es richtig benutzt. Ich denke, das ist etwas, was ich will. Wenn jemand dies schon einmal verwendet hat, wäre Ihre Hilfe dankbar.

Ich kenne zwar die benutzerdefinierten Taxonomien und Begriffe, aber ich denke, dass das, was ich möchte, weit über die Anforderungen hinausgeht, die ich suche, da ich mit mehreren Informationen zu tun habe und lediglich zwei Beitragstypen wie miteinander verknüpfen möchte.

1

Ich habe meine eigene Frage sozusagen teilweise gelöst. Ich habe versucht, Post-Typ-Beziehungen für Ewigkeiten und die Plugin-Relation-Post-Typen zum Laufen zu bringen, wie in meinem Kommentar zu Christophers Antwort erwähnt. Es ist alles andere als perfekt, aber ich habe herausgefunden, wie man dieses Plugin bekommt: http://wordpress.org/extend/plugins/relation-post-types/ - arbeiten (wenn auch nicht so hübsch).

Der folgende Code ruft ein Homepage-Karussellelement und dann einen zugeordneten Künstlernamen ab. Dies kann geändert werden, um auch verwandte Post-Meta zu erhalten. Ich wollte Scribus Posts-2-Posts-Plugin verwenden, konnte aber nicht herausfinden, wie es verwendet wird.

$carousels = get_posts(array('post_type' => 'homepage_carousel'));  
$counter   = count($carousels);
$increment = 0;
foreach($carousels as $carousel):
    $image = wp_get_attachment_image_src( get_post_thumbnail_id( $carousel->ID ), 'large' );
    $related_ids = rpt_get_object_relation($carousel->ID, array('artists'));
    foreach ($related_ids as $related_id) {
        $related_post[] = get_post($related_id);   
    }
<li style="background: transparent url(<?php echo $image[0]; ?>) no-repeat;">
<div class="carousel_content">
    <p class="large_heading"><?php echo $related_post[$increment]->post_title; ?></p>
    <p class="carousel_meta">
        <?php if (get_post_meta($carousel->ID, 'learn_more_link', true)): ?>
            <?php $link = true; ?>
            <a href="<?php echo get_post_meta($carousel->ID, 'learn_more_link', true); ?>">Learn More</a>
        <?php endif; ?>
        <?php if (get_post_meta($carousel->ID, 'buy_cd_link', true)): ?>
            <?php $link2 = true;  ?>
            <?php if ($link): ?> | <?php endif; ?>
            <a href="<?php echo get_post_meta($carousel->ID, 'buy_cd_link', true); ?>">Buy CD</a>
        <?php endif; ?>
        <?php if (get_post_meta($carousel->ID, 'buy_mp3_link', true)): ?> 
        <?php if ($link2 || $link): ?> | <?php endif; ?><a href="<?php echo get_post_meta($carousel->ID, 'buy_mp3_link', true); ?>">Buy MP3</a>
        <?php endif; ?>
        </p>
</div> 

Wie Sie sehen, ist dies sehr hackig und keineswegs eine endgültige Lösung. Es hat bei mir funktioniert, aber ich bin immer noch unzufrieden damit, wie der obige Code funktioniert. Um zugeordnete Post-Meta zu erhalten, wäre mehr Code erforderlich.

Sollte dies, da es keine Antwort gibt, vielleicht mehr ein Wiki als eine Frage werden? Da die hier aufgeführten Lösungen nicht immer aktuell sind, entwickelt sich Wordpress ständig weiter und es werden neue Plugins veröffentlicht.

1

Hallo @ Dewayne:

Sie können einen Beitragstyp nicht wirklich "teilen" . Jeder Beitrag hat einen Typ.

Aber ich mache mir eher Sorgen, dass die von Ihnen gewählte 'homepage_carousel'-Architektur nicht richtig ist und Sie daher in alle möglichen Probleme wie das Teilen von Beitragstypen führt. Können Sie genauer beschreiben, was ein 'homepage_carousel' enthält?

Auf den ersten Blick klingt dies wie ein klassischer Fall, bei dem für Ihren post_type='artist' eine Taxonomie mit dem Namen "Featured Locations" (vielleicht) benötigt wird und Sie das Tag "Home" verwenden Seitenkarussell? "

Wenn Sie Ihre Frage aktualisieren können, um mir mitzuteilen, warum dies nicht funktioniert, kann ich Ihnen weiterhelfen. Davon wenns klappt dann super!

1
MikeSchinkel

Benutzerdefinierte Post-Typen und Taxonomien sind auch für mich verwirrend, aber ich denke, Mike hat Ihre Antwort mit seinem Vorschlag erhalten, Taxonomien hier zu verwenden.

Das Karussell ist kein Inhaltstyp, den Sie der Datenbank hinzufügen möchten, sondern der Inhalt in der Datenbank, den Sie präsentieren möchten. Ihre Antwort wäre dann eine Abfrage, die nach Alben eines Künstlers (benutzerdefiniert nach Typ und Taxonomie) mit benutzerdefinierten Feldern (Weitere Informationen, CD kaufen, MP3 kaufen) mit der Taxonomie "Hervorgehobener Ort" sucht .

Würde gerne die Gedanken anderer dazu hören, da benutzerdefinierte Post-Typen und Taxonomien eines der Dinge bleiben, die ich am verwirrendsten finde. Insbesondere bin ich mir nicht sicher, wie ich den Künstler als benutzerdefinierten Beitragstyp und Taxonomie auflösen kann, was meiner Meinung nach notwendig ist, um die gewünschten zusätzlichen Metas sowie die Wechselbeziehungen mit den anderen Daten zuzulassen.

In Bezug auf die Videos sollten Sie sich die Postformate in 3.1 ansehen, damit Sie keine separaten Einbettungscodes für jede Größe benötigen, sondern nur ein anderes Anzeigeattribut.

Ich hoffe, das ist hilfreich für Sie oder fördert zumindest das Gespräch.

Prost!

0
Christopher