Zum Inhalt

Inhaltstypen

Acht Inhaltstypen kommen aus Modulen. Sie erscheinen im Backend-Menü nur, solange das jeweilige Modul aktiv ist. Schaltet man ein Modul ab, bleiben die Einträge in der Datenbank erhalten, sind aber nicht mehr erreichbar.

Slug Beschriftung Modul Wofür
download Download download Dateien mit Metadaten, ausgegeben über Block oder Shortcode
foreignword Fremdwörter foreignwords Glossareinträge, die im Text automatisch hervorgehoben werden
tw_news News news Meldungen für Ankündigungsleiste und Countdown
slider Slides slider Slider mit mehreren Folien
modal Modals modals Inhalte, die in einem Overlay nachgeladen werden
tw_mockup TW mockup mockups Gerätevorlagen für den Mockup-Block
tw_pricing_plan Pricing plan pricing-cards Tarife für die Preiskarten
loops_filter Loops & Filter loops-filter gespeicherte Abfragen und Filter zur Wiederverwendung

Die letzten drei sind Konfigurationsspeicher, keine Inhalte im engeren Sinn. Ein Eintrag unter Loops & Filter erscheint nicht im Frontend — er wird von einem Block oder Shortcode über seine ID eingebunden.

Taxonomien

Slug Beschriftung Gehört zu Modul
download-category Categories download download
foreignword-category Themen foreignword foreignwords
foreignword-language Sprachen foreignword foreignwords

Die Sprachen sind rein zur Sortierung im Backend gedacht: Sie haben keine öffentliche Adresse. Themen und Categories dagegen bringen jeweils ein eigenes Archiv mit.

Die übrigen Inhaltstypen haben keine Taxonomien.

Öffentliche Adressen

Die meisten Inhaltstypen aus den Modulen sind Konfigurationsspeicher und gar nicht aufrufbar: Loops & Filter, Mockups und Tarife sind public => false, Modals sind zwar public, aber nicht publicly_queryable — sie werden über einen Nachladeaufruf ausgeliefert, nicht über eine eigene Adresse.

Aufrufbar sind drei, und sie unterscheiden sich darin, wie frei die Adresse ist:

Inhaltstyp Adresse Änderbar?
tw_news /news/ und /news/<slug>/ ja, Feld Archiv-Slug im News-Modul
download /downloads/ und /downloads/<slug>/ ja, Feld Archiv-Slug im Download-Modul; das Archiv lässt sich abschalten
foreignword /lexikon/ und /lexikon/<slug>/ nein

Dazu die beiden Term-Archive:

Taxonomie Adresse Änderbar?
foreignword-category /lexikon/themen/<begriff>/ nein
download-category /themen/<begriff>/ nein

Alle Slugs sind mit with_front => false registriert, stehen also direkt hinter der Domain und nicht unter einem Beitrags-Präfix.

Die Fremdwörter sind zudem nur öffentlich, wenn das Glossar in den Modul-Einstellungen freigeschaltet ist. Vorher sind sie public => false und haben kein Archiv. Ist es aktiv, zeigt /lexikon/ alle Einträge alphabetisch auf einer Seite — die Abfrage setzt posts_per_page auf -1, es gibt also keine Blätternavigation.

Drei Slugs stehen fest im Code

lexikon, lexikon/themen und themen sind in foreignwords.php, foreignwords-taxonomy.php und download-taxonomy.php hartkodiert. Zwei davon sind unglücklich gewählt: „Lexikon" trifft eine inhaltliche Aussage, die nicht zu jedem Glossar passt, und themen belegt für die Download-Kategorien einen sehr allgemeinen Begriff auf der obersten Adressebene — dort, wo eine Seite ihn womöglich selbst braucht.

Wer eine andere Adresse braucht, ändert die Argumente aus dem Child-Theme über register_post_type_args beziehungsweise register_taxonomy_args und schreibt danach die Permalinks neu. Bei einer Seite mit bestehenden Links ist das kein harmloser Eingriff: Alte Adressen laufen ins Leere, wenn keine Weiterleitung dazukommt.

Anpassungen an Kern-Inhaltstypen

Inhaltstyp Änderung
post Beschriftung im Menü zu „Blog“ geändert

Die Datei dazu ist includes/posttypes/post-posttype.php.

Eigene Felder

TWtheme nutzt kein Advanced Custom Fields. Die Felder kommen aus einer eigenen Engine im Theme. Für jeden Inhaltstyp gibt es einen Filter nach dem Muster twtheme_{post_type}_fields, über den Reiter und Felder definiert werden.

Wie das im Detail funktioniert, steht unter Inhaltstypen anlegen und Felder.

Felder gibt es außerdem für:

Wo Filter oder Klasse
Menüpunkte twtheme_menu_fields
Benutzerprofile AddProfileMetaFields
Kommentare AddCommentMetaFields
Begriffe einer Taxonomie als vierter Parameter bei der Registrierung

Die Vorlage für eigene Inhaltstypen

Im Theme liegt eine vollständige, aber abgeschaltete Vorlage: includes/posttypes/example-posttype.php. Sie registriert einen Inhaltstyp example mit Taxonomie example-category, Feldern und einem Feld-Shortcode.

Eingebunden wird sie nicht — in includes/posttypes/posttypes.php steht die Zeile auskommentiert:

twtheme_include_files(
    [
        // 'example-posttype',
        'post-posttype',
    ],
    'includes/posttypes/'
);

Die Datei ist als Abschrift gedacht, nicht zum Aktivieren. Projektspezifische Inhaltstypen gehören ins Child-Theme, nicht in den Parent — siehe Child-Theme.

Templates für Inhaltstypen

Nur die Fremdwörter und die News bringen eigene Block-Templates mit. Alle anderen Inhaltstypen nutzen single.html und archive.html.

Welche Templates es gibt, steht unter Templates.

Eigene Optionsseiten

Vier Inhaltstypen haben eine eigene Einstellungsseite unterhalb ihres Menüeintrags. Sie speichern jeweils in einer eigenen Option, deren Name dem Slug entspricht:

Inhaltstyp Options-Key
download download
tw_news tw_news
foreignword foreignword
loops_filter loops_filter

Alle Options-Keys im Überblick: Optionen.