Ce que je souhaite finalement faire, c’est lorsque l’utilisateur est connecté au site, je souhaite rediriger le message vers la page avec tous les articles créés par cet utilisateur et je souhaite les charger via la demande AJAX.
J'ai sauvegarder shortcode qui aura tous les messages de l'utilisateur actuel.
function ajax_write_here(){
$output = '<div id="write_here_ajax_wrap"></div>';
return $output;
}
add_shortcode('write-here-ajax', 'ajax_write_here');
Et avoir la fonction php accrochée à la demande AJAX
function write_here_ajax_dashboard() {
echo "test";
}
add_action( 'wp_ajax_write_here_get_posts', 'write_here_ajax_dashboard' );
fonction jQuery dans Document Ready
jQuery(document).ready( function($) {
function write_here_list_page(){
$.ajax({
type: "GET",
url: ajax_object.ajax_url, // check the exact URL for your situation
dataType: 'html',
data: {
action: 'write_here_get_posts',
security: ajax_object.ajax_nonce
},
error: function(jqXHR, textStatus, errorMessage) {
console.log(errorMessage);
return false;
},
success: function(data) {
//console.log(data);
$('#write_here_ajax_wrap').html('');
$('#write_here_ajax_wrap').append(data);
}
});
}
// Initiate function
write_here_list_page();
});
Le problème que j'ai maintenant est que la fonction jQuery est déclenchée toutes les pages à travers le site. Comment puis-je le faire déclencher sur la page si le Shortcode est inséré?
Vous pouvez wp_enqueue_script dans votre shourtcode. Voici le code que j'ai corrigé.
Enregistrez votre fichier JS
function wh_enqueue() {
wp_register_script( 'wh-ajax-app', WH_PATH . '/js/write-here-ajax.js', array('jquery'), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'wh_enqueue' );
et mettre en file d'attente dans votre fonction shortcode
function ajax_write_here(){
wp_enqueue_script( 'wh-ajax-app' ); // Enqueue your script here
$output = '<div id="write_here_ajax_wrap"></div>';
return $output;
}
add_shortcode('write-here-ajax', 'ajax_write_here');
Cela ne chargera que votre fichier JS sur la page où un shortcode est inséré.