Zum Inhalt

Template-Funktionen

Diese Funktionen sind dafür gedacht, aus Templates, Template-Parts und Child-Themes aufgerufen zu werden.

Erst prüfen, dann aufrufen

Viele Funktionen kommen aus einem Modul. Ist das Modul abgeschaltet, wird die Datei gar nicht geladen und ein ungeprüfter Aufruf ist ein Fatal Error.

if (function_exists('twtheme_breadcrumb')) {
    echo twtheme_breadcrumb();
}

Für sechs häufig genutzte Funktionen gibt es einen Stub in includes/template-fallbacks.php. Diese sind immer aufrufbar, tun aber nichts Sinnvolles, wenn das Modul fehlt:

Funktion Verhalten ohne Modul Modul
twtheme_toc() gibt den Inhalt unverändert zurück toc
twtheme_hyperlink() gibt die URL zurück hyperlinks
twtheme_hyperlink_scan() gibt den Inhalt unverändert zurück hyperlinks
twtheme_content_blocker() gibt den Inhalt unverändert zurück cookiebot, content-blocker
twtheme_get_cookie_names() gibt ein leeres Array zurück cookiebot
twtheme_ad() gibt einen leeren String zurück adsense

Alle anderen brauchen die Prüfung mit function_exists().

Funktion Rückgabe
twtheme_get_header($header_name = '', $args = []) gibt direkt aus
twtheme_get_footer($footer_name = '', $args = '') gibt direkt aus

Sie verhalten sich wie get_header() und get_footer(), berücksichtigen aber den Wartungsmodus: Ist er aktiv und sind eigene Wartungs-Templates eingestellt, wird header-maintenance beziehungsweise footer-maintenance geladen.

Inhalt und Formatierung

Funktion Rückgabe Zweck
twtheme_get_content($content) string | null Wendet Shortcodes und die Link-Verarbeitung auf einen Inhalt an.
twtheme_excerpt($post_id, $content = '', $args = []) string Gekürzter Text, optional mit Weiterlesen-Link oder Modal.
twtheme_excerpt_details_more($content, $extended_content, $modal_title, $id) string Klappt den vollständigen Text in ein <details>-Element.
twtheme_highlight_search_keywords($content) string Hebt die aktuellen Suchbegriffe im Inhalt hervor.
twtheme_count_content_words($content) int Zählt Wörter und ignoriert HTML und Shortcodes.
twtheme_post_reading_time($content) int Lesezeit in Minuten.
twtheme_date_as_text($date) string Datum relativ ausgeben. Modul date-as-text.
remove_empty_p($content) string Entfernt leere <p>-Elemente.
twtheme_outputter($functions, $value) mixed Wendet mehrere Ausgabefilter nacheinander an.
Funktion Rückgabe Zweck
twtheme_hyperlink($url = '', $title = '', $atts = [], $args = []) string Link mit den Regeln des Hyperlink-Moduls.
twtheme_hyperlink_scan($content = '', $args = []) string Verarbeitet alle Links in einem HTML-Fragment.
twtheme_hyperlink_matches_id_or_class_selector($attributes, $selector) bool Prüft Link-Attribute gegen einen Selektor.
twtheme_brand_url() string URL der Marke.
Funktion Rückgabe Modul
twtheme_breadcrumb($items = [], $args = []) string breadcrumb
twtheme_toc($content, $args = []) string | array toc
twtheme_render_header_quick_nav() string Kern
twtheme_render_language_switcher($variant = 'compact') string Polylang
twtheme_skip_links() gibt direkt aus accessibility

Eigene Einträge im Brotkrumen-Pfad:

$items = [
    ['name' => 'Produkte', 'url' => '/produkte/'],
    ['name' => 'Kategorie', 'url' => '/produkte/kategorie/'],
    ['name' => 'Produktname', 'url' => ''],
];

echo twtheme_breadcrumb($items, [
    'divider'       => '/',
    'show_homepage' => false,
]);

Nachladen von Inhalten

Funktion Rückgabe Zweck
twtheme_dynamic_content($key = '', $html = '', $script = '', $loading = 'lazy', $attr = '', $inner_prefix = '', $context = []) string Platzhalter, dessen Inhalt später per AJAX kommt.
twtheme_dynamic_content_render_immediate($html, $scripts = []) string Gibt denselben Inhalt sofort aus, ohne AJAX.

Ausführlich unter Dynamic Content.

Autoren und Beiträge

Funktion Rückgabe Zweck
twtheme_get_author_for_post($post_id = 0) array Autoren eines Beitrags.
twtheme_render_author_portrait_for_post($post_id, $image_size = 'medium', $extra_class = '') string Portrait des Autors.
twtheme_render_post_author_markup($attributes, $context = []) string Markup des Autor-Blocks.
twtheme_get_posts($post_type_name = 'page', $args = []) array Beiträge als Liste aus Wert und Beschriftung.
twtheme_posts_by_taxonomy($taxonomy, $args = [], $term_args = [], $sort = []) array | null Beitrags-IDs, nach Termname und dann nach einem Beitragsfeld sortiert.

Details zur letzten Funktion unter Posts by Taxonomy.

Templates und Template-Parts

Funktion Rückgabe Zweck
twtheme_block_template_part_exists($slug) bool Prüft, ob ein Block-Template-Part vorhanden ist.
twtheme_render_block_template_part($slug, $tag_name = '') gibt direkt aus Rendert einen Block-Template-Part.
twtheme_find_addon_template($template_filename) string Sucht ein Template in den Modulordnern.
twtheme_page_template($single_template) string Überschreibt das Seiten-Template.

Ausgabe-Bausteine

Funktion Rückgabe Zweck
twtheme_inline_icon($name, $style = 'regular', $class = '') string Inline-SVG. Funktioniert auch ohne Icon-Modul.
twtheme_spinner() string Ladeanzeige.
twtheme_loading_overlay_html($background_color = null) string Overlay während des Ladens.
twtheme_pagination($link, $args) string Formatiert Paginierungs-Links. Hängt am Filter twtheme_paginate_link.
twtheme_brand_icon() string Marken-Icon als eingebettetes SVG.
twtheme_brand_title($title) string Markenlogo mit Titel.

Medien

Funktion Rückgabe Zweck
twtheme_media($args = []) string iframe mit Lazy-Load und optionalem Consent-Wrapper.
twtheme_preload_image($image_id, $image_url = '', $image_srcset = '', $image_sizes = '') string <link rel="preload"> für ein Bild. Modul pagespeed.
twtheme_preload_fonts() gibt direkt aus Preload-Verweise für Schriften. Modul pagespeed.
twtheme_attr_get($tag, $attr) string Liest ein Attribut aus einem HTML-Tag.
twtheme_attr_set($tag, $attr, $value) string Setzt ein Attribut in einem HTML-Tag.
twtheme_image_sizes_for_media($size_names) array Gibt Bildgrößen in der Mediathek frei.

Benutzer und Rollen

Funktion Rückgabe
twtheme_get_user_role() string
twtheme_get_user_roles() array
twtheme_user_has_role($role_name, $user_id = '') bool
twtheme_user_is_admin($user_id = '') bool
twtheme_get_user_meta($user_id = '') array
twtheme_get_username($user_id = '') string

Geräteerkennung

Funktion Rückgabe
get_device() array
is_mobile() bool
is_tablet() bool
is_desktop() bool

Diese vier werten den User-Agent aus. Für Layoutentscheidungen ist CSS oder die Block-Sichtbarkeit die verlässlichere Wahl — der User-Agent lässt sich nicht zuverlässig auf Bildschirmgrößen abbilden.

Aus Modulen

Funktion Rückgabe Modul
twtheme_render_social_links($args = []) string socialmedia
twtheme_icon_render_markup($args = []) string icons
twtheme_download_render_item($post_id, $label = '', $options = []) gibt direkt aus download
twtheme_posts_loop($args = []) string loops-filter
twtheme_filter_render($attributes) string loops-filter
twtheme_news_render_bar($attributes = []) string news
twtheme_tw_mockup_render_markup($attributes, $block = null, $img_loading = 'lazy') string mockups
twtheme_foreignwords_highlight_html($html) string foreignwords
twtheme_foreignword_render_glossary_markup($attrs) string foreignwords
twtheme_foreignword_format_display_title($title, $post_id = null, $as_html = false) string foreignwords
twtheme_print_content_html($content_html) string print
twtheme_accordion_print_button_markup($label = '', $position = 'top', $print_id = '', $style_override = '', $print_title = '') string print
twtheme_maintenance_is_enabled() bool maintenance
twtheme_icons_available() bool icons
twtheme_gmaps_render($map_data, $args = []) string google-maps
twtheme_osm_render($map_data, $args = []) string openstreetmap
twtheme_ad($shortcode_id = '', $class = '', $args = []) string adsense
twtheme_content_blocker($content, $name = '', $class = '') string cookiebot, content-blocker

Der Sonderfall twtheme_map()

Beide Kartenmodule stellen zusätzlich twtheme_map() bereit — aber erst bei after_setup_theme mit Priorität 99, und nur wenn der Name noch frei ist. Ein Projekt kann die Funktion also selbst belegen. Für eindeutige Aufrufe sind twtheme_gmaps_render() und twtheme_osm_render() die bessere Wahl.

Optionen lesen

Funktion Rückgabe Zweck
twtheme_read_theme_option_value($tab, $key) mixed Einzelwert aus der Option twtheme.
twtheme_get_current_post_type() string Aktueller Inhaltstyp, auch im Backend.
twtheme_get_post_types() array Verfügbare Inhaltstypen.
twtheme_get_roles() array WordPress-Rollen als Liste.
twtheme_get_value($data = [], $fallback = true) mixed Liest value aus einem Feld-Array.
twtheme_get_title($data = [], $fallback = true) string Liest title aus einem Feld-Array.
twtheme_modules_registry() array Metadaten aller Module.

Hilfen beim Entwickeln

Funktion Zweck
twtheme_error_log($message = '') Schreibt ins Fehlerprotokoll, mit Datei und Zeile.
twtheme_console_log($message, $type = 'warn') Ausgabe in der Browser-Konsole.
print_rpre($array = []) Gibt ein Array lesbar in <pre> aus.
get_random_id($length = 6) Zufällige Kennung.

Diese vier gehören in die Entwicklung, nicht in ausgelieferten Code.

Beispiele

// Lesezeit ausgeben
$minutes = twtheme_post_reading_time(get_the_content());
echo '<span class="reading-time">' . esc_html($minutes) . ' min</span>';

// Link mit den Theme-Regeln
if (function_exists('twtheme_hyperlink')) {
    echo twtheme_hyperlink('https://example.com', 'Mehr erfahren');
}

// Inhalt erst bei Bedarf laden
echo twtheme_dynamic_content('hero', '<div class="hero-placeholder"></div>');