Skip to content
lislis edited this page Jan 9, 2020 · 5 revisions

Custom Post-Types

Anstatt alles in Posts und Pages zu organisieren, sind viele Inhalte in extra Post-Types gegliedert. Die Definitionen befinden sich in inc/custom_types/.

Custom Taxonomies

Die Standard Kategorien und Tags werden ausschließlich für den Blog genutzt. Folgene Taxonomien sind pro Post-Type definiert:

  • FAQ -> Zielgruppe
  • Events -> Ort, Jahr
  • Labs -> Lab Ort
  • Austausche -> Jahr, Austauschprogramm
  • Personen -> Job, Lab Ort
  • Videos -> Ort, Jahr, Themenraum, Technologie und Videotyp

Die übergreifenden Taxonomien Ort und Jahr werden genutzt um Events und Videos zuordnen zu können. Ähnliches war für Labs und Austausche gedacht, aber dann zurückgestellt, teils aus Materialmangel.

Taxonomien werden definiert in inc/taxonommies.php

Custom Theme Variablen

Das Theme definiert mehrere Variablen, die im Backend im Theme-Customizer erscheinen.

Revolving Claims, eine Komma-separierte Liste mit Begiffen für die Startseite.

Support Title, Support Text, Support Link, alles rund um den Freundeskreis.

Custom Theme Variablen sind in inc/customizer.php definiert.

Shortcodes

Die Folgenden Shortcodes sind in functions.php definiert.

[vuevideo color="" location="" year="" type="" topics="" tech=""] Alle Attribute sind optional. Location, year, topics und tech beziehen sich auf die Slugs der entsprechenden Taxonomien der Videos. Der Shortcode bereitet ein Container-div für die VueJS app vor und setzt Variablen im globalen window-Object. Der tatsächliche Player wird dann per JS geladen. Mehr in der Sektion Videoplayer.

[contactperson person="" title=""] Title ist optional, er ändert die Überschrift im Kontaktpersonfeld. Person nimmt die ID einer Person, die über den Custom Post Type Person angelegt wurde.

[frkr text="" button="" link=""] Freundeskreisbox, button und link sind optional.

[buttonbox text="" button="" link=""] Einfache Box mit Text, Button und Link.

[floatbox color="" text="" title="" button="" link="" image=""] Aufwändige Box, siehe Startseite.

Api endpoints

Zusätzlich zur Standard-Wordpress-REST-API werden die Folgenden zwei Endpunkte definiert.

/lauch/v1/retro_videos Das ist der Endpoint für den Videoplayer. Er nimmt optional fünf Parameter, die den Video-Taxonomien entsprechen und liefert eine Payload mit Videos, die dann im Videoplayer dargesellt werden.

/lauch/v1/revolving_claims Das ist der Endpoint, der die in den Theme-Customizations angegebenen Schlagworte als Array ausgibt. Diese werden auf der Startseite im Headerbereicht benötigt. ("Mit xzy die Welt verbessern")

Api endpoints sind in inc/api_endpoints.php definiert.

VueJS Apps

Es gibt zwei VueJS Apps, die im Theme genutzt werden

Revolving Claims

Ist für den Wechsel von "Mit xyz die Welt verbessern" auf der Startseite im Header zuständig. Holt sich die definierten Begriffe über den revolving_claims-Endpoint. Der Code liegt in js/revolving-claims.js

VuePlayer

Wird durch den [vuevideo] Shortcode aufgerufen und baut den Videoplayer zusammen. Die im Shortcode angegebenen Attribute werden als Parameter genutzt, um via dem /retro_videos Endpoint eine Liste aus Videos zusammenzustellen. Der Code liegt in js/vueplayer.js

Anderes JS

Alles andere unabhängig von Wordpress befindet sich in static-protoype/assets/js/main.js und wird dann ins Theme kopiert.