Skip to content

Kapitel 6: Seiten- & Beitrags-Templates

6.1 Seiten-Template (page.php)

Einfachste page.php

php
<?php get_header(); ?>

<main id="primary" class="site-main">
    <?php
    while (have_posts()) :
        the_post();
        get_template_part('template-parts/content', 'page');
    endwhile;
    ?>
</main>

<?php get_footer(); ?>

content-page.php erstellen

Erstellen Sie template-parts/content-page.php:

php
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">
        <?php the_title('<h1 class="entry-title">', '</h1>'); ?>
    </header>

    <?php if (has_post_thumbnail()) : ?>
        <div class="post-thumbnail">
            <?php the_post_thumbnail('large'); ?>
        </div>
    <?php endif; ?>

    <div class="entry-content">
        <?php
        the_content();

        wp_link_pages(array(
            'before' => '<div class="page-links">' . __('Seiten:', 'mein-theme'),
            'after'  => '</div>',
        ));
        ?>
    </div>

    <?php if (comments_open() || get_comments_number()) : ?>
        <div class="comments-area">
            <?php comments_template(); ?>
        </div>
    <?php endif; ?>
</article>

6.2 Beitrags-Template (single.php)

single.php erstellen

php
<?php get_header(); ?>

<main id="primary" class="site-main">
    <?php
    while (have_posts()) :
        the_post();
        get_template_part('template-parts/content', 'single');
        
        // Beitrags-Navigation
        the_post_navigation(array(
            'prev_text' => '<span class="nav-subtitle">' . __('Vorheriger Beitrag', 'mein-theme') . '</span> <span class="nav-title">%title</span>',
            'next_text' => '<span class="nav-subtitle">' . __('Nächster Beitrag', 'mein-theme') . '</span> <span class="nav-title">%title</span>',
        ));
    endwhile;
    ?>
</main>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

content-single.php erstellen

php
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">
        <?php the_title('<h1 class="entry-title">', '</h1>'); ?>

        <div class="entry-meta">
            <span class="posted-on">
                <?php echo get_the_date(); ?>
            </span>
            <span class="byline">
                von <?php the_author(); ?>
            </span>
        </div>
    </header>

    <?php if (has_post_thumbnail()) : ?>
        <div class="post-thumbnail">
            <?php the_post_thumbnail('large'); ?>
        </div>
    <?php endif; ?>

    <div class="entry-content">
        <?php the_content(); ?>
    </div>

    <footer class="entry-footer">
        <?php the_category(', '); ?>
        <?php the_tags(' | Tags: ', ', ', ''); ?>
    </footer>

    <?php if (comments_open() || get_comments_number()) : ?>
        <div class="comments-area">
            <?php comments_template(); ?>
        </div>
    <?php endif; ?>
</article>

6.3 Benutzerdefinierte Seitentemplates

Erstellen eines benutzerdefinierten Templates

Erstellen Sie page-custom.php:

php
<?php
/**
 * Template Name: Benutzerdefiniertes Seitentemplate
 * Template Post Type: page
 */

get_header();
?>

<main id="primary" class="site-main custom-template">
    <div class="custom-hero">
        <h1>Willkommen auf meiner benutzerdefinierten Seite!</h1>
    </div>

    <?php
    while (have_posts()) :
        the_post();
        ?>
        <div class="entry-content">
            <?php the_content(); ?>
        </div>
        <?php
    endwhile;
    ?>
</main>

<?php get_footer(); ?>

Verwendung:

  1. Gehen Sie zu Seiten → Neue Seite
  2. Wählen Sie rechts "Benutzerdefiniertes Seitentemplate"
  3. Veröffentlichen Sie die Seite

6.4 Template-Hierarchie

WordPress sucht Templates in dieser Reihenfolge:

Für Seiten (page.php):

1. page-{slug}.php         (z.B. page-über-uns.php)
2. page-{id}.php           (z.B. page-42.php)
3. page.php                (Fallback)
4. singular.php            (Fallback)
5. index.php              (Letzter Fallback)

Für Beiträge (single.php):

1. single-{post-type}.php  (z.B. single-portfolio.php)
2. single.php              (Fallback)
3. singular.php            (Fallback)
4. index.php              (Letzter Fallback)

Für Kategorien (archive.php):

1. category-{slug}.php     (z.B. category-tutorials.php)
2. category-{id}.php      (z.B. category-5.php)
3. category.php           (Fallback)
4. archive.php            (Fallback)
5. index.php              (Letzter Fallback)

📝 Übung 6: Templates erstellen

Ziel: Erstellen Sie page.php, single.php und ein benutzerdefiniertes Template.

Schritte:

  1. Erstellen Sie page.php mit Loop
  2. Erstellen Sie single.php mit Beitragsnavigation
  3. Erstellen Sie ein benutzerdefiniertes Template für die Startseite
  4. Testen Sie die Templates

✅ Zusammenfassung

In diesem Kapitel haben Sie gelernt:

  • page.php für statische Seiten zu erstellen
  • single.php für einzelne Beiträge zu erstellen
  • ✅ Benutzerdefinierte Seitentemplates zu erstellen
  • ✅ Die Template-Hierarchie zu verstehen

Nächstes Kapitel: Wir lernen Sidebar und Widgets anzupassen.

➡️ Zu Kapitel 7: Sidebar & Widgets →

Frei für alle Anfänger