Skip to content

Kapitel 16: Fehlerbehebung (Anfänger-Leitfaden)

16.1 Theme kann nicht aktiviert werden

Fehler: "Das Theme fehlt oder ist beschädigt"

Ursache 1: style.css fehlt oder ist falsch.

Lösung:

  1. Überprüfen Sie, ob style.css im Theme-Ordner existiert
  2. Überprüfen Sie, ob Theme Name: in style.css vorhanden ist
  3. Überprüfen Sie, ob der Ordnername keine Leerzeichen enthält

Ursache 2: Theme Name enthält Sonderzeichen.

Lösung:

css
/* Richtig ✅ */
Theme Name: Mein Theme

/* Falsch ❌ */
Theme Name: Mein Theme!
Theme Name: Mein@Theme

16.2 Dynamische Inhalte werden nicht angezeigt

Fehler: the_title(), the_content() geben nichts aus

Ursache 1: Loop fehlt oder ist falsch.

Lösung:

Stellen Sie sicher, dass die Loop vorhanden ist:

php
<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <h2><?php the_title(); ?></h2>
        <?php the_content(); ?>
    <?php endwhile; ?>
<?php endif; ?>

Ursache 2: wp_head() oder wp_footer() fehlt.

Lösung:

Fügen Sie in header.php hinzu:

php
<head>
    <!-- andere Tags -->
    <?php wp_head(); ?>
</head>

Fügen Sie in footer.php hinzu:

php
<?php wp_footer(); ?>
</body>
</html>

16.3 Styles werden nicht geladen

Fehler: CSS-Styles haben keine Wirkung

Ursache 1: CSS wurde nicht mit wp_enqueue_style() eingebunden.

Lösung:

Fügen Sie in functions.php hinzu:

php
function mein_theme_scripts() {
    wp_enqueue_style('mein-theme-style', get_stylesheet_uri());
}
add_action('wp_enqueue_scripts', 'mein_theme_scripts');

Ursache 2: wp_head() fehlt in header.php.

Lösung:

Stellen Sie sicher, dass <?php wp_head(); ?> vor </head> steht.

16.4 JavaScript wird nicht geladen

Fehler: JS-Skripte funktionieren nicht

Ursache: JS wurde nicht mit wp_enqueue_script() eingebunden.

Lösung:

php
function mein_theme_scripts() {
    wp_enqueue_script('mein-theme-script', get_template_directory_uri() . '/js/script.js', array('jquery'), '1.0.0', true);
}
add_action('wp_enqueue_scripts', 'mein_theme_scripts');

Wichtig: Der letzte Parameter true bedeutet, dass das Skript vor </body> geladen wird.

16.5 Menü wird nicht angezeigt

Fehler: Navigation erscheint nicht

Ursache 1: Menü wurde nicht in functions.php registriert.

Lösung:

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

Ursache 2: Menü wurde im Dashboard nicht zugewiesen.

Lösung:

  1. Gehen Sie zu Design → Menüs
  2. Erstellen Sie ein Menü
  3. Wählen Sie "Hauptmenü" als Position
  4. Speichern

16.6 "Weiße Seite" (White Screen of Death)

Fehler: Website zeigt nur eine weiße Seite

Ursache: PHP-Fehler.

Lösung 1: Debugging aktivieren.

Fügen Sie in wp-config.php hinzu:

php
define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', true);
define('WP_DEBUG_LOG', true);

Lösung 2: Fehlerlog prüfen.

Schauen Sie in wp-content/debug.log.

16.7 Responsive Probleme

Fehler: Website sieht auf Mobile falsch aus

Ursache 1: Viewport-Meta-Tag fehlt.

Lösung:

Fügen Sie in header.php innerhalb des <head>-Tags hinzu:

php
<meta name="viewport" content="width=device-width, initial-scale=1.0">

Ursache 2: CSS Media Queries fehlen oder sind falsch.

Lösung:

css
/* Tablet */
@media (max-width: 1024px) {
    .container {
        width: 100%;
    }
}

/* Smartphone */
@media (max-width: 768px) {
    .container {
        width: 100%;
        padding: 0 10px;
    }
}

16.8 Bilder werden nicht angezeigt

Fehler: Beitragsbilder fehlen

Ursache: add_theme_support('post-thumbnails') fehlt.

Lösung:

Fügen Sie in functions.php hinzu:

php
function mein_theme_setup() {
    add_theme_support('post-thumbnails');
}
add_action('after_setup_theme', 'mein_theme_setup');

Im Template verwenden:

php
<?php if (has_post_thumbnail()) : ?>
    <?php the_post_thumbnail('medium'); ?>
<?php endif; ?>

Fehler: "Seite nicht gefunden" bei Kategorien/Beiträgen

Ursache: Permalink-Struktur wurde geändert, aber Apache .htaccess wurde nicht aktualisiert.

Lösung:

  1. Gehen Sie zu Einstellungen → Permalinks
  2. Klicken Sie auf "Speichern" (ohne Änderungen)
  3. WordPress wird .htaccess automatisch aktualisieren

Manuell:

Stellen Sie sicher, dass .htaccess folgenden Inhalt hat:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

16.10 Widgets werden nicht angezeigt

Fehler: Sidebar zeigt keine Widgets an

Ursache 1: Sidebar wurde nicht registriert.

Lösung:

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');

Ursache 2: dynamic_sidebar() fehlt in sidebar.php.

Lösung:

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

📝 Übung 16: Fehler beheben

Ziel: Beheben Sie häufige Theme-Fehler.

Schritte:

  1. Erstellen Sie ein Theme mit absichtlichen Fehlern
  2. Aktivieren Sie WP_DEBUG
  3. Beheben Sie die Fehler basierend auf den Fehlermeldungen

✅ Zusammenfassung

In diesem Kapitel haben Sie gelernt:

  • ✅ Theme-Aktivierungsfehler zu beheben
  • ✅ Loop-Fehler zu korrigieren
  • ✅ CSS/JS-Einbindungsprobleme zu lösen
  • ✅ Menü- und Widget-Fehler zu beheben
  • ✅ Responsive Probleme zu debuggen

Nächstes Kapitel: Wir lernen Ressourcen für WordPress-Theme-Entwicklung kennen.

➡️ Zu Kapitel 17: Ressourcen →

Frei für alle Anfänger