Ich bin mir nicht sicher, ob „Daten-Massaging“ etwas Reales ist, aber so bezeichne ich das, was ich jetzt beschreiben werde.
Dave und ich dachten über ein kleines Redesign für ShopTalk Show nach. Eine Art neuer Anstrich. Das ist immer schön, das ab und zu zu machen. Aber wir wollten diesmal von innen nach außen beginnen. Es klang nicht sehr ansprechend, um das vorhandene Datenmaterial herum zu gestalten. Wir wollten mit saubereren Daten arbeiten. Wir mussten die vorhandenen Daten aufbereiten, damit sie mehr Gestaltungsmöglichkeiten eröffnen.
Wir waren in die klassische WordPress-Falle getappt
Nämlich... alles einfach in den Standard-Inhaltsbereich zu schütten

Wir haben Markdown verwendet, was meiner Meinung nach vernünftig ist, aber es war immer noch ein Haufen eher unstrukturierter Inhalte. Ein Beispiel

Wenn diese Inhalte jedes Mal ganz anders strukturiert wären (wie es bei einem Blogbeitrag wahrscheinlich der Fall wäre), wäre das in Ordnung. Aber das war nicht der Fall. Jede Sendung hat dieselbe Struktur.
Es ist nicht die Schuld von WordPress
Wir haben die Daten einfach nicht richtig strukturiert. Das kann man in jedem CMS vermasseln.
Um fair zu sein, es hat wahrscheinlich eine ganze Weile gedauert, bis sich eine stabile Struktur herausgebildet hat. Es ist schwierig, Daten von Anfang an einzurichten, wenn man nicht weiß, wie diese Struktur aussehen wird. Apropos...
Die Struktur, die wir brauchten
Das sind die strukturierten Daten, die eine Podcast-Episode benötigt
- Titel der Episode
- Beschreibung der Episode
- Hauptbild der Episode
- MP3
- URL
- Laufzeit
- Größe in Bytes
- Eine Liste von Themen in der Sendung mit Zeitstempeln
- Eine Liste von Links
- Optional: Gast/Gäste
- Name des Gastes
- URL des Gastes
- Twitter des Gastes
- Biografie des Gastes
- Foto des Gastes
- Optional: Werbekunden
- Name des Werbekunden
- URL des Werbekunden
- Text des Werbekunden
- Zeitstempel des Werbekunden
- Optional: Jobanzeige(n)
- Firma der Jobanzeige
- Titel der Jobanzeige
- URL der Jobanzeige
- Beschreibung der Jobanzeige
- Optional: Transkript
Selbst das ist nicht perfekt
Zum Beispiel: Wir nummerieren die Episoden als Teil des Titels von Hand, was bedeutet, dass wir, wenn wir diese Nummer einzeln benötigen, String-Manipulationen in den Vorlagen durchführen, was sich etwas hakelig anfühlt.
Ein weiteres Beispiel: Gäste sind keine programmatische Konstruktion für sich. Ein Gast ist kein eigener Datenbankeintrag mit einer ID. Das bedeutet, wenn ein Gast in mehreren Sendungen vorkommt, sind das Duplizitätsdaten. Außerdem gibt es uns nicht die Möglichkeit, "alle Sendungen mit Rebecca Murphey anzeigen" sehr einfach, was etwas ist, das wir uns gewünscht hatten. Wahrscheinlich gibt es in Zukunft eine Möglichkeit, das programmtechnisch zu lösen, denken wir.
Glücklicherweise lässt sich diese Struktur leicht in Advanced Custom Fields ausdrücken
Sobald man weiß, was man braucht, macht ACF es ziemlich einfach, das zu erstellen und auf jede benötigte Seitentyp-Art anzuwenden.
Mir ist bewusst, dass andere CMS diese Art von Strukturierung standardmäßig fördern. Toll. Das halte ich für clever. Sie sollten sehr stolz auf sich sein, dass Sie IhrLieblingsCMS gewählt haben.
In ACF sah unsere „Feldgruppe“ wie folgt aus

Wir benötigten „Repeater“-Felder für Daten wie Gäste, wo eine Struktur vorhanden ist, die beliebig oft wiederholt werden muss. Das ist eine PRO-Funktion von ACF, was ein genialer Schachzug von ihnen zu sein scheint.

Lassen Sie das Daten-Massaging beginnen
Leider bedeutet das, dass, nachdem wir die richtige Struktur hatten, nicht alle alten Daten sofort richtig erschienen. Es gab ein paar Möglichkeiten, wie wir vorgehen konnten...
Wir hätten die Gestaltung der Sendungsseiten nach Datum aufteilen können. Wenn es eine alte Sendung war, geben wir den Inhalt wie immer aus. Wenn es eine neue Sendung ist, verwenden wir das schöne Datenformat. Das fühlt sich jedoch wie ein noch größeres Chaos an als das, was wir hatten.
Wir hätten versuchen können, das programmtechnisch zu lösen. Vielleicht einige Skripte, die wir ausführen könnten, die die alten Daten analysieren, intelligente Vermutungen darüber anstellen, welche Inhalte in die neue Struktur übertragen werden sollen, und diese ausführen. Definitiv keine triviale Sache zu schreiben. Selbst wenn wir es hätten schreiben können, hätte es mehr Zeit gekostet als das Verschieben der Daten von Hand.
Oder... wir verschieben die Daten von Hand. Also haben wir das am Ende getan. Genauer gesagt, wir haben jemanden beauftragt, die Daten für uns zu verschieben. Danke Max! Max Kohler war unser Daten-Massager.

Das Hineinversetzen von Hand schien wirklich der richtige Weg zu sein. Es ist im Wesentlichen Dateneingabe, erforderte aber ein wenig Nachdenken und Entscheidungsfindung (daher „Massaging“), sodass es die perfekte Aufgabe ist, entweder selbst zu erledigen oder jemanden zu finden, der ein paar zusätzliche Stunden gebrauchen kann.
Design ist mit sauberen und strukturierten Daten viel einfacher
Mit all den schön aufgeräumten Daten konnte ich sie im Design selbst auf eine viel konsistentere und strukturiertere Weise ausgeben

Dieses neueste Design von ShopTalk Show ist kein Meisterwerk, aber da all diese strukturelle Arbeit getan ist, können wir uns bei dem *nächsten* Design stärker auf Ästhetik und vielleicht auf die unterhaltsameren Teile des visuellen Designs konzentrieren.
Hallo Chris,
Das Aufteilen von Inhalten ist immer gut, aber ein Nebeneffekt davon ist, dass der Feed, der an Podcast-Apps gesendet wird, standardmäßig weniger Informationen enthält.
Es könnte sich lohnen, die Vorlagen etwas zu bearbeiten, um die Abschnitte „TimeJump“ und „Links“ wieder in den RSS-Feed aufzunehmen?
Der beste Teil des ShopTalk-Feeds ist die Möglichkeit, die TimeJump-Links direkt in einer Podcast-App zu verwenden, um zu Teilen der Episode zu springen (zumindest mit Overcast).
Ich vermute, dass eine der häufigsten Arten, wie Menschen mit den Episodeninhalten interagieren, innerhalb ihrer Podcast-App und nicht auf der Website selbst geschieht? Vielleicht nennt man das „Feed-First-Design“? :)
Ja, das ist ein unerwünschter Nebeneffekt!
Aber das lässt sich komplett bewältigen. Zum Beispiel habe ich die Beschreibung der Sendung wieder so eingefügt
Ich hatte ein kleines Problem, einen Markdown-Parser in functions.php zum Laufen zu bringen, aber das werden wir irgendwann in Ordnung bringen und den Feed wieder so funktionsreich machen, wie er war.
Clevere Idee! Ich wette, immer mehr Websites machen das, da sie CMS bauen, bei denen der Inhalt eine API ist.
Das kannst du wahrscheinlich DRY-er machen. Zum Beispiel werden einige deiner Gäste wiederkehren, und es wäre dumm, ihre Informationen erneut hinzuzufügen. Ich musste Autoren eines Magazins (nicht „Autoren“) einbeziehen. Also habe ich einen CPT namens „Writers“ eingerichtet und ACF-Felder ähnlich wie deine hinzugefügt. Dann habe ich den Autor dem jeweiligen Beitrag mit dem ACF-Post-Objekt zugeordnet. ACF erlaubt es dir auch, mehrere Objekte einem Beitrag zuzuordnen. Das Zuordnen mehrerer Gäste zu einer Sendung in der von dir definierten Reihenfolge sollte also kein Problem sein. Außerdem hat jeder Autor mit einem CPT seine eigene Seite, einschließlich Biografie, sozialen Informationen usw. und einer abgefragten Liste aller seiner Artikel.
Ja, das erwähne ich ein wenig in dem Beitrag.
Wir haben auch überlegt, tatsächliche WordPress-Benutzer als Benutzer zu verwenden, aber letztendlich haben wir uns dagegen entschieden.
Sobald ich deinen Eröffnungsparagraphen gelesen hatte, dachte ich: „Sie sollten ACF verwenden“.
Stell dir meine Überraschung vor!
Wenn Sie mehr Flexibilität bei den Inhaltsblöcken wünschen, können Sie auch die PRO-Funktion von ACF, Flexible Content, verwenden.
Wir verwenden dies, um unseren Kunden die Wahl zu lassen, welche Art von Inhaltsblöcken sie wünschen. Also Text, Bild, Einbettung, Zitat, zwei Spalten usw. So hat der Kunde die Kontrolle darüber, welche Blöcke in welcher Reihenfolge verwendet werden.
Hilft, all die verschiedenen Inhaltselemente zu trennen und den Designteil auf der Frontendseite wirklich zu perfektionieren.
Advanced Custom Fields ist zweifellos das beste WordPress-Plugin, das es gibt.
Großartige Arbeit. Immer wieder nutze ich ACF, um relativ komplexe Layouts zu vereinfachen. Kunden LIEBEN, wie einfach es ist, sobald alles eingerichtet ist.
Wenn Sie die Standard-Suche von WordPress verwenden, seien Sie sich der Auswirkungen auf Ihre Suchergebnisse bewusst. Standardmäßig durchsucht WP nur den Beitragstitel und die Hauptinhaltsfelder des Beitrags.
Wenn Sie noch keine benutzerdefinierte Suchlösung verwenden, sollten Sie sich etwas wie searchwp.com ansehen, um Ihre ACF-Felder einzubeziehen und die Ergebnisse zu gewichten.
Gut gemacht – wenn Sie das nächste Mal mit CPT etwas mehr zu kämpfen haben, schauen Sie sich https://de.wordpress.org/plugins/pods/ an – und Beziehungen – wäre es nicht schön, wenn Sie denselben Werbekunden wieder hätten, all seine Daten wären bereits in einem separaten CPT vorhanden und Sie hätten nur eine Beziehung/einen Link dazu? Oder wenn Sie regelmäßige Gäste haben? Oder erstellen Sie eine Liste Ihrer Gäste und in welcher Show sie waren – oder verlinken Sie von der Jobbörse zur Show ;)
Aber ja, Datenstruktur !wichtig :D gute Zusammenfassung Ihrer Reise!
Wie oben erwähnt, macht die Aufteilung Ihrer Inhalte in Meta-Felder diese Inhalte für RSS-Reader und die Suche weniger zugänglich.
In solchen Fällen verstecke ich den Inhaltseditor und generiere dann, wenn der Beitrag erstellt oder aktualisiert wird, die Markierung aus den Post-Metadaten und speichere sie in post_content. Das gibt Ihnen das Beste aus beiden Welten – strukturierte Dateneingabe/-speicherung im Backend und ein einziges Feld, das die resultierende Markierung speichert.
Clever. Würde gerne ein Beispiel dafür sehen!