Je développe un site Web à l'aide de WP CMS où je souhaite implémenter le titre du message sous forme de liste déroulante, ainsi que lorsque les utilisateurs sélectionnent un titre déroulant pour le contenu affiché ci-dessous pendant le rechargement. Je suis là. Que vais-je faire si je veux récupérer le contenu par identifiant?
function select_options(){ ?>
<form action="" method="POST">
<select name="count" id="selectId" >
<?php
$posts = new WP_Query(array('posts_per_page' => 3, 'post_type' => 'post'));
while($posts->have_posts()) : $posts->the_post(); ?>
<option id="selection" value="<?php echo get_the_ID(); ?>"><?php echo get_the_title(); ?></option>
<?php endwhile;
die()
?>
</select>
</form>
<?php
}
add_action('wp_ajax_select_option', 'select_options');
add_action('wp_ajax_nopriv_select_option', 'select_options');
Javascript:
jQuery(document).ready(function(){
jQuery.ajax({
//var count = $('#selection').val();
type: 'POST',
url: 'wp-admin/admin-ajax.php',
data:{
action: 'select_option'
//count: count;
},
dataType: 'html',
success: function(data){
jQuery('.content').html(data)
},
error: function(){
alert(fail)
}
})
});
Il est préférable d'utiliser l'action wp_ajax_ dans une action init.
En fait, l'action wp_ajax_ doit être accessible de n'importe où. L'utilisation du crochet d'action init pourrait le faire fonctionner comme il le fait.
Esperons que ça marche