Récupérer the_content() de WordPress avec jQuery

Publié par Jean-Michel le

J’essaie de charger des images supplémentaires lorsque l’utilisateur clique sur un bouton. Pour le moment, j’ai la fonction suivante :

$('a').click(function(){
    $( ".gallery-pop-up-container" )
    .load( "wp-content/themes/fashion_detail/includes/single/gallery-pop-up.php");
});

et j’essaie de charger:

<div class="gallery-page">
    <?php the_content(); ?>
</div>

Cependant, j’obtiens une erreur PHP, car je ne sais pas quelle est la fonction :

 Fatal error: Call to undefined function the_content()

Quelle serait la meilleure façon pour moi de charger the_content()?

Solution n°1 trouvée

Comme @GM l’a souligné, vous devez prélever l’impressionnante API AJAX. Dans l’exemple ci-dessous, nous lançons une requête au gestionnaire AJAX, avec le paramètre action=gallery_popup.

$( "a" ).click(
    function () {
        $( ".gallery-pop-up-container" ).load( "/wp-admin/admin-ajax.php?action=gallery_popup" );
    }
);

En réponse à cette requête, WordPress déclenchera une action du même nom, préfixée par wp_ajax_...(ou wp_ajax_nopriv_...si l’utilisateur actuel n’est pas connecté).

Donc, tout ce que nous faisons maintenant est de nous accrocher à ladite action et de sortir la partie modèle :

function wpse_137607_gallery_popup() {
    get_template_part( 'includes/single/gallery-pop-up.php' );
    exit;
}

add_action( 'wp_ajax_nopriv_gallery_popup', 'wpse_137607_gallery_popup' );
add_action( 'wp_ajax_gallery_popup',        'wpse_137607_gallery_popup' );

Et tu as fini!

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

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