Comment obtenir des données de publication personnalisées wordpress en json?

Publié par Jean-Michel le

Dans mon fichier de modèle, je récupère les données de publication personnalisées comme celle-ci,

entrez la description de l'image ici

Au départ, je récupère 7 messages, je dois créer un bouton Lire plus sous le message, qui récupèrera plus de 7 messages de la table de base de données wp, lorsque quelqu’un cliquera dessus.

Mais je ne sais pas comment faire, je veux savoir,

  • Dans la méthode jquery get, quel fichier php j’appelle pour les données,
  • Comment ou quel script exact je vais écrire dans ce fichier php.

Solution n°1 trouvée

Ici, j’ai ajouté une idée approximative de la façon dont vous pouvez écrire votre code:

Créez une fonction ajax dans function.php et transmettez-lui la valeur de décalage via un appel ajax et ajoutez simplement les données reçues dans votre section d’affichage.

voici un exemple de création de fonction ajax :

add_action('wp_ajax_nopriv_cyt_ajax_search','cyt_ajax_search');
add_action('wp_ajax_cyt_ajax_search','cyt_ajax_search');
function cyt_ajax_search(){


    $offset = $_POST['offset'];

    $args = array (
    'post_type' => 'post',
    'posts_per_page' =>7
    'offset'=>$offset,

    'meta_query' =>..........

    );
$query = new WP_Query($args);
if($query->have_posts() ) :
        while ( $query->have_posts() ) : $query->the_post();


endwhile;

wp_reset_postdata();
endif;


}

// Code frontal, en cliquant sur le bouton, il calera la fonction ajax et transmettra la valeur de décalage, à chaque clic, vous devez augmenter la valeur de 7 (au cas où vous voudriez charger 7 messages uniquement) et vérifier combien de messages il reste et si la valeur de décalage dépasse le nombre total de données comptées à afficher par la requête wp, masquez simplement le bouton

<div class= »snippet » data-lang= »js » data-hide= »false » data-console= »true » data-babel= »false »>

<div id ="esiSection"></div>

<span click="loadmore" data-offset='0'>Click here</span>

jQuery('.loadmore').click(function(){
var offset = parseInt(jQuery(this).attr('data-offset'));
jQuery.ajax({
			url: '<?php echo admin_url('admin-ajax.php'); ?>',
			type: 'POST',
			data: {
				'action' : 'cyt_ajax_search',
				'offset' : offset ,
			},
		success: function(response) {

			jQuery('#resiSection').append(response);
			offset = offset + 7;


		},
		error: function(error){
			console.log(error);

		}

	});

});	
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *