SQL-Abfrage funktioniert nicht in alphabetischer Titel- / Inhaltssuche

Ich habe eine Ajax-Anfrage mit wp_ajax sending eine Variable mit dem Namen “q” was ich tun möchte, ist nach dem Skript bekommen die Anfrage in die database zu schauen und holen Sie den Titel und die ID der entsprechenden Beiträge, die entweder den Titel oder den Inhalt haben ” wie “die Variable, also hier ist mein Code:

global $wpdb; $q = $_REQUEST['q']; $sql = "SELECT * FROM wp_posts WHERE post_type = 'question' AND post_status = 'publish' AND post_title LIKE %s OR post_content LIKE %s"; $posts = $wpdb->get_results($wpdb->prepare($sql,like_escape($q),like_escape($q))); echo ''; 

jetzt habe ich folgende Beiträge: test test 2 Lorem lipsum … Lorem lipsum …

wenn ich “te” eintippe, sollte es alle Posts bekommen, weil alle “te” in ihrem Titel enthalten, aber ich bekomme nichts

Beim Tippen von “tes” sollte es den “test” bekommen aber wieder bekomme ich nichts und so einen aber wenn ich das ganze Wort “test” eintippe gibt es mir die “test” Beiträge für den anderen es klappt gar nicht .

Kannst du mir das bitte mitteilen? Es wird nervig …

/ Bearbeiten /

Ich habe folgende Änderungen vorgenommen:

 $posts = $wpdb->get_results($wpdb->prepare($sql,'%'.like_escape($q).'%','%'.like_escape($q).'%')); 

Nun, was passiert, ist, dass ich alle Posts von der db es scheint, wie es die post_type und post_status Klauseln ignoriert

Grüße, Paul.

Solutions Collecting From Web of "SQL-Abfrage funktioniert nicht in alphabetischer Titel- / Inhaltssuche"

Alter, keine Notwendigkeit der SQL-Unordnung! Mit WP können Sie den Post-Inhalt oder Titel alphabetisch mit dem Suchparameter durchsuchen .

Verwenden Sie diese Lösung stattdessen …

 global $wpdb; $q = $_REQUEST['q']; $posts = get_posts(array('s' => $q, 'post_type' => 'question', 'posts_per_page' => -1)); echo ''; 

Setzen Sie dies in die AJAX-Handler-function. Es wird klappen!