Skip to content

Kapitel 5: WordPress-Template-Tags

bloginfo() - Website-Informationen abrufen

php
<?php bloginfo($show); ?>

Häufig verwendete Parameter:

ParameterRückgabewertBeispiel
nameWebsite-TitelMein WordPress-Blog
descriptionWebsite-UntertitelTipps und Tricks
charsetZeichenkodierungUTF-8
languageSprachcodede-DE
stylesheet_urlURL zur style.csshttps://.../style.css
template_urlURL zum Theme-Verzeichnishttps://.../wp-content/themes/mein-theme
homeStartseiten-URLhttps://example.com

Beispiel:

php
<title><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?></title>
<meta charset="<?php bloginfo('charset'); ?>">

home_url() - Startseiten-URL

php
<a href="<?php echo home_url('/'); ?>">Startseite</a>

get_stylesheet_uri() - URL zur style.css

php
<link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>">

5.2 Beitragsbezogene Tags

⚠️ Wichtig: Diese Tags müssen innerhalb der Loop verwendet werden!

the_title() - Beitragstitel

php
<?php the_title(); ?>

<?php the_title('<h2>', '</h2>'); ?>

Mit Link zur Beitragsseite:

php
<h2>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</h2>

the_content() - Beitragsinhalt

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

the_excerpt() - Beitragsauszug

php
<div class="entry-excerpt">
    <?php the_excerpt(); ?>
</div>

Auszug-Länge ändern (in functions.php):

php
function mein_theme_excerpt_length($length) {
    return 30;  // 30 Wörter
}
add_filter('excerpt_length', 'mein_theme_excerpt_length');
php
<a href="<?php the_permalink(); ?>">Beitrag lesen</a>

the_date() / get_the_date() - Veröffentlichungsdatum

php
<time datetime="<?php echo get_the_date('c'); ?>">
    <?php the_date(); ?>
</time>

Datumsformat anpassen:

php
<?php the_date('d.m.Y'); ?>  <!-- 26.05.2024 -->
<?php the_date('j. F Y'); ?>   <!-- 26. Mai 2024 -->

the_author() - Autorname

php
<span class="author">Von <?php the_author(); ?></span>

the_category() - Kategorien

php
<p>Kategorien: <?php the_category(', '); ?></p>

the_tags() - Schlagworte

php
<p>Schlagworte: <?php the_tags('', ', ', ''); ?></p>

comments_number() - Kommentaranzahl

php
<p><?php comments_number('Keine Kommentare', '1 Kommentar', '% Kommentare'); ?></p>

5.3 Navigationsmenü-Tags

php
<?php
wp_nav_menu(array(
    'theme_location'  => 'primary',
    'menu_id'         => 'primary-menu',
    'menu_class'      => 'nav-menu',
    'container'       => 'nav',
    'container_class' => 'main-navigation',
    'depth'           => 2,
));
?>

⚠️ Wichtig: theme_location muss in functions.php registriert sein!

Registrierung in functions.php:

php
function mein_theme_setup() {
    register_nav_menus(array(
        'primary' => __('Hauptmenü', 'mein-theme'),
        'footer'  => __('Footer-Menü', 'mein-theme'),
    ));
}
add_action('after_setup_theme', 'mein_theme_setup');

5.4 Sidebar-Tags

dynamic_sidebar() - Sidebar anzeigen

php
<aside id="secondary" class="widget-area">
    <?php if (is_active_sidebar('sidebar-1')) : ?>
        <?php dynamic_sidebar('sidebar-1'); ?>
    <?php endif; ?>
</aside>

⚠️ Wichtig: Sidebar muss in functions.php registriert sein!

Registrierung in functions.php:

php
function mein_theme_widgets_init() {
    register_sidebar(array(
        'name'          => __('Sidebar', 'mein-theme'),
        'id'            => 'sidebar-1',
        'description'   => __('Hier Widgets hinzufügen.', 'mein-theme'),
        'before_widget' => '<section id="%1$s" class="widget %2$s">',
        'after_widget'  => '</section>',
        'before_title'  => '<h2 class="widget-title">',
        'after_title'   => '</h2>',
    ));
}
add_action('widgets_init', 'mein_theme_widgets_init');

5.5 Tag-Praxis: index.php modifizieren

Vollständige index.php mit allen Tags

php
<?php get_header(); ?>

<main id="primary" class="site-main">
    <div class="container">
        <?php if (have_posts()) : ?>
            <header class="page-header">
                <h1 class="page-title">Blog</h1>
            </header>

            <div class="posts-container">
                <?php while (have_posts()) : the_post(); ?>
                    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                        <header class="entry-header">
                            <h2 class="entry-title">
                                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                            </h2>

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

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

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

                        <footer class="entry-footer">
                            <span class="cat-links">
                                <?php the_category(', '); ?>
                            </span>
                            <span class="tags-links">
                                <?php the_tags('Tags: ', ', ', ''); ?>
                            </span>
                        </footer>
                    </article>
                <?php endwhile; ?>
            </div>

            <?php
            the_posts_pagination(array(
                'mid_size'  => 2,
                'prev_text' => '← Zurück',
                'next_text' => 'Weiter →',
            ));
            ?>

        <?php else : ?>
            <p>Keine Beiträge gefunden.</p>
        <?php endif; ?>
    </div>
</main>

<?php get_footer(); ?>

✅ Zusammenfassung

In diesem Kapitel haben Sie gelernt:

  • ✅ Basis-Tags für Website-Informationen (bloginfo(), home_url())
  • ✅ Beitragsbezogene Tags (the_title(), the_content(), etc.)
  • ✅ Navigationsmenü-Tags (wp_nav_menu())
  • ✅ Sidebar-Tags (dynamic_sidebar())
  • ✅ Eine vollständige index.php mit allen Tags zu erstellen

Nächstes Kapitel: Wir lernen Seiten- und Beitrags-Templates kennen.

➡️ Zu Kapitel 6: Seiten- & Beitrags-Templates →

Frei für alle Anfänger