WordPress-Suchergebnisse mit Ajax, get_post_type () funktioniert nicht

Ich versuche, die Suchergebnisse mit Ajax zu laden. Die Ergebnisse werden korrekt angezeigt, aber ich kann anscheinend get_search_query() funktionieren lassen, damit der Suchbegriff vor den Ergebnissen erscheint. Ich weiß, dass ich das mit Javascript machen könnte, aber ich bin wirklich neugierig, warum die WordPress-functionen nicht funktionieren. Ich habe auch versucht, $_GET['s'] und get_query_var('s') , von denen keiner funktioniert.

Bitte sehen Sie meinen Code unten:

functionen.php

  array( 'publish', 'inherit' ), 's' => $query ); $search = new WP_Query( $args ); if ( $search->have_posts() ) : ?> 

have_posts() ): $search->the_post();?>

JS-Code

  $(document).on('submit', '.search-form', function( event ) { event.preventDefault(); var $input = $(this).find('input[name="s"]'); var $sQuery = $input.val(); $('#results').html(''); $.ajax({ url: ajaxPosts.ajaxurl, type: 'post', data: { action: 'search_results', query: $sQuery }, success: function( html ) { $('#results').append( html ); } }); }); 

Solutions Collecting From Web of "WordPress-Suchergebnisse mit Ajax, get_post_type () funktioniert nicht"

$_GET['s'] funktioniert aus zwei Gründen nicht. Erstens machen Sie eine POST-Anfrage und keine GET-Anfrage und zweitens gibt es in Ihrer Anfrage keine Variable mit Namen s .

Beim Ausführen einer AJAX-Anfrage über wp-admin/admin-ajax.php führt WordPress nur den Code (function) aus, der für diese Anfrage registriert ist. Außerdem lädt es WordPress-Administrations-APIs und Ajax-Handler für WordPress Core. Also Abfrage Vars, Vorlagen usw. sind nicht initialisiert und deshalb funktioniert get_search_query () nicht. Der Ablauf einer AJAX-Anfrage unterscheidet sich von dem normalen und nur das absolute Minimum wird geladen. Sie können wp-admin/admin-ajax.php für weitere Details des wp-admin/admin-ajax.php .