Utiliser Ajax dans WordPress
Ma requête actuelle est
$args=array(
'post_type'=>'product',
'post_per_page'=>'10',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'car',
),
),
);
$loop=new WP_Query($args);
Et j’ai des cases à cocherBus<input type="checkbox" class="ve-select" value="bus">
Boat<input type="checkbox" class="ve-select" value="boat">
.
Actuellement, ce que je fais, c’est quand quelqu’un clique sur la case à cocher, je recharge la page en utilisant javascript et passe la valeur via la variable ‘ve’.
$args=array(
'post_type'=>'product',
'post_per_page'=>'10',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $_REQUEST['ve'],
),
),
);
$loop=new WP_Query($args);
S’il vous plaît, n’importe qui peut suggérer comment puis-je modifier la requête et afficher le résultat sans recharger.
S’il vous plaît aider les amis.
Solution n°1 trouvée
Veuillez essayer le code suivant ::
dans Votre post_page
<script>
function getPostList(val)
{
jQuery.ajax({
url: '<?= admin_url('admin-ajax.php') ?>',
data: {action:'my_action', term: val, secret: '<?php wp_create_nonce('listPost_byCat'); ?>'},
method: 'POST',
success: function(res){
jQuery('#post-div').html(res);
}
});
}
jQuery(document).ready(function(){
jQuery('.ve-select).on('click', function(){
getPostList(jQuery(this).val());
});
});
</script>
dans fonctions.php
<?php
add_action('wp_ajax_my_action', 'my_action_handler');
add_action('wp_ajax_nopriv_my_action', 'my_action_handler');
function my_action_handler()
{
if(wp_verify_nonce($_POST['secret'], 'listPost_byCat'))
{
$args=array(
'post_type'=>'product',
'post_per_page'=>'10',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $_POST['term'],
),
),
);
$loop=new WP_Query($args);
if(!empty($loop))
{
foreach($loop as $post)
{
echo $post->post_title() . '<br/>';
}
}
}
}
?>
0 commentaire