Zurück zum Blog Tipps & Tricks

AJAX in WordPress: So lädst du Inhalte ohne Refresh

10. Dezember 2025 Dominik Baurhenn 8 min Min. Lesezeit
AJAX in WordPress: So lädst du Inhalte ohne Refresh

Mit AJAX kannst du Inhalte dynamisch nachladen ohne die Seite neu zu laden. Hier zeige ich dir, wie es in WordPress funktioniert.

1. JavaScript vorbereiten

// In deiner JS-Datei:
jQuery(document).ready(function($) {
    $('#load-more').on('click', function() {
        var button = $(this);
        var page = button.data('page');
        
        $.ajax({
            url: ajax_object.ajax_url,
            type: 'POST',
            data: {
                action: 'load_more_posts',
                page: page,
                nonce: ajax_object.nonce
            },
            beforeSend: function() {
                button.text('Lädt...');
            },
            success: function(response) {
                if (response.success) {
                    $('#posts-container').append(response.data.html);
                    button.data('page', page + 1);
                    button.text('Mehr laden');
                }
            }
        });
    });
});

2. Script einbinden mit Localize

// In functions.php:
add_action('wp_enqueue_scripts', 'enqueue_ajax_scripts');
function enqueue_ajax_scripts() {
    wp_enqueue_script('my-ajax', get_stylesheet_directory_uri() . '/js/ajax.js', 
        array('jquery'), '1.0', true);
    
    wp_localize_script('my-ajax', 'ajax_object', array(
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('ajax_nonce')
    ));
}

3. AJAX Handler in PHP

add_action('wp_ajax_load_more_posts', 'load_more_posts');
add_action('wp_ajax_nopriv_load_more_posts', 'load_more_posts');

function load_more_posts() {
    // Nonce prüfen!
    if (!wp_verify_nonce($_POST['nonce'], 'ajax_nonce')) {
        wp_send_json_error('Ungültige Anfrage');
    }
    
    $page = intval($_POST['page']);
    
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => 6,
        'paged' => $page
    );
    
    $query = new WP_Query($args);
    
    ob_start();
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            get_template_part('template-parts/post-card');
        }
    }
    $html = ob_get_clean();
    
    wp_send_json_success(array('html' => $html));
}

Wichtige Sicherheitshinweise

  • Immer Nonce verwenden!
  • Input validieren und sanitizen
  • Capabilities prüfen bei Admin-Aktionen
AJAX macht deine Website interaktiver – aber vergiss nie die Sicherheit!

Praxisbeispiel: Live-Suche ohne Seitenreload

Ein häufiger Anwendungsfall aus meinen Kundenprojekten: Eine Echtzeit-Suche die Ergebnisse sofort anzeigt während der Nutzer tippt — ohne die Seite neu zu laden. Das Prinzip: JavaScript fängt die Tastatureingabe ab, sendet per AJAX eine Anfrage an eine PHP-Funktion, die die Datenbank durchsucht und HTML-Ergebnisse zurückgibt. Der Client rendert die Ergebnisse in einem Dropdown. Performance-Tipp: Debouncing einbauen (erst nach 300ms Tipp-Pause die Anfrage senden), damit nicht bei jedem Buchstaben ein Request geht.

Sicherheit bei AJAX-Requests

AJAX-Requests in WordPress MÜSSEN über einen Nonce abgesichert werden. Ohne Nonce kann jeder externe Script Anfragen an deinen Endpoint senden — das ist ein offenes Einfallstor. Zusätzlich: Input immer serverseitig validieren und sanitizen (sanitize_text_field(), absint(), wp_kses()). Und: Berechtigungsprüfung mit current_user_can() wenn der Endpoint nur für eingeloggte Nutzer sein soll. Diese Sicherheitsmaßnahmen sind nicht optional — sie sind Pflicht.

AJAX vs. REST API: Wann was nutzen?

WordPress hat seit Version 4.7 eine vollwertige REST API. Für neue Projekte empfehle ich die REST API statt des alten admin-ajax.php-Ansatzes: Sie ist schneller (kein WordPress-Admin-Bootstrap), standardisierter (JSON statt HTML), und besser für moderne JavaScript-Frameworks geeignet. Der admin-ajax.php-Ansatz funktioniert weiterhin und ist für Legacy-Projekte absolut okay — aber für neue Entwicklungen ist die REST API der modernere Weg.

SEO ist ein Marathon, kein Sprint

Die Maßnahmen in diesem Artikel wirken — aber nicht über Nacht. Technisches SEO zeigt oft nach 4–8 Wochen erste Ergebnisse. Content-SEO braucht 3–6 Monate. Und lokales SEO kann nach dem Optimieren des Google Business Profiles und dem Sammeln erster Bewertungen innerhalb von 2–3 Monaten messbare Verbesserungen bringen. Wichtig ist: Dranbleiben und regelmäßig messen. Google Search Console ist dein bester Freund — dort siehst du genau für welche Keywords du rankst, welche Seiten Traffic bekommen und wo Verbesserungspotenzial liegt.

Du willst SEO-Ergebnisse sehen, ohne alles selbst zu machen? Kontaktiere mich für ein unverbindliches Erstgespräch. Ich analysiere deine aktuelle Sichtbarkeit und zeige dir die 3 Maßnahmen mit dem größten Hebel. Als Webentwickler kann ich SEO-Empfehlungen nicht nur aussprechen, sondern direkt umsetzen — das ist der Vorteil wenn Technik und Strategie aus einer Hand kommen.

Passende Leistungen & Tools

Teilen: