Change Query-post or WP-Query args with Ajax
-
Hello,
I would like to change the query-post or WP-Query loop arguments with ajax. I made a categories menu on the index.php. By defaut all categories are displaying and on the click I would like to reset the query and filter them one by one. I start with this exemple :https://web-profile.com.ua/wordpress/dev/ajax-in-wordpress/
This is the PHP code for the index.php
Actually, the value of each input is correctly returned with : alert(data);
<div class="filter_home"> <span>Filtrer</span> // onclick take the input value and change the loop with new arguments <a href="#all"> <input name="input_filter" type="hidden" id="input_all" value="news,articles,divers" />Tout</a> <a class="fnews" href="#news"><input name="input_filter" type="hidden" id="input_news" value="news" />News</a> <a class="fdossiers" href="#tests"><input name="input_filter" type="hidden" id="input_dossiers" value="dossiers" />Dossiers</a> </div> <?php // the variable to modify is $filter query_posts('posts_per_page=10&category_name='.$filter.'&orderby&paged='.get_query_var('paged')); if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="gd_bloc_content"> <?php gd_get_image1 (120,80); ?> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php the_excerpt (240) ; ?> </div> <?php endwhile; endif; ?>
the jQuery/Ajax in script.js
jQuery(document).ready(function($) { $('.filter_home a').click(function (e) { e.preventDefault(); $.post(ajax_object.ajaxurl, { action: 'ajax_action', inputs: $(this).find('input:hidden').val() }, function(data) { alert(data); result = data; return result; }); }); });
the PHP in function.php
wp_enqueue_script( 'ajax-script', get_stylesheet_directory_uri().'/libs/js/script.js', array('jquery'), 1.0 ); wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); add_action( 'wp_ajax_ajax_action', 'change_filter_post_cat' ); add_action( 'wp_ajax_nopriv_ajax_action', 'change_filter_post_cat' ); function change_filter_post_cat() { $filter = $_POST['inputs']; echo $filter; die(); exit; }
I think I need JSON to pass Jquery variable (data) to the query-post, but I don’t understand where to make the junction between query-post and the variable ? Is there someone to help me ?
Thanks in advance
- The topic ‘Change Query-post or WP-Query args with Ajax’ is closed to new replies.