Je suis en train d'essayer de créer un plugin où je dois créer une recherche AJAX. J'utilise la méthode décrite dans http://www.garyc40.com/2010/03/5-tips-for-us--ajax-in-wordpress/ pour effectuer les appels ajax. Jusqu'ici tout va bien.
Le problème n'est pas sûr de savoir comment récupérer les résultats de la recherche dans ma fonction ajax.
La première tentative utilisait WP_Query comme ceci:
$query= new WP_Query( array( 'post_type'=> 'any','post_status' => 'publish','posts_per_page' => '8','s' => wp_specialchars($string)) );
Le problème ici est que dès que je passe la chaîne à "s", la requête change de post_type => 'any à post_type =' post ', ce qui ne convient pas à mes fins. Si je ne passe pas le 's' tout fonctionne bien.
Ensuite, j'ai aussi essayé de créer ma propre requête comme ceci:
$pageposts = $wpdb->get_results($wpdb->prepare("
SELECT wp_posts.*
FROM wp_posts
WHERE 1=1 aND wp_posts.post_type IN ('post', 'page', 'attachment')
AND (wp_posts.post_status = 'publish')
AND (((wp_posts.post_title LIKE %s) OR (wp_posts.post_content LIKE %s)))
ORDER BY wp_posts.post_date DESC LIMIT 0, 8
",array('%'.$string.'%')));
$wpdb->show_errors();
$wpdb->print_error();
Mais je ne cesse de recevoir:
<div id='error'>
<p class='wpdberror'><strong>WordPress database error:</strong> []<br />
<code>SELECT option_value FROM wp_options WHERE option_name = 'aiosp_post_title_format' LIMIT 1</code></p>
</div>
Il y a une manière appropriée de faire ce que j'essaye? Mon plugin consiste en un formulaire simple qui devrait montrer dix titres => hiperlink pour une recherche ajax donnée.
Merci à tous pour l'aide!
L'erreur semble provenir d'une autre source, pas de votre requête. Vous n'utilisez pas la table wp_options. Alors peut-être sauter
$ wpdb-> show_errors (); $ wpdb-> print_error ();
ferait que les choses fonctionnent même. Mais il y a probablement une erreur ailleurs.
Pour obtenir un aperçu de la création de l'aide à la recherche AJAX, vous pouvez vérifier ici: http://www.wpcodelab.com/archives/create-a-custom-ajax -search-for-wordpress