wordpress ajax return 0

Ich versuche, ein Panel einzurichten, dieses Bildbeschreibung hier eingeben

Das Menü oben ruft verschiedene Ajax-functionen auf, um einen Daumen anzuzeigen. Mit einem Klick auf den Daumen können Sie die Details in der letzten Box des Panels sehen.

Ich habe dieses php funktioniert

 function GetPostPartner(){ $catPartner = "loop_pb_partner"; get_template_part($catPartner); wp_die(); } add_action('wp_ajax_nopriv_GetPostPartner', 'GetPostPartner'); function GetPostEnte(){ $catEnte = "loop_pb_ente"; get_template_part($catEnte); wp_die(); } add_action('wp_ajax_nopriv_GetPostEnte', 'GetPostEnte'); function GetPostColl(){ $catColl = "loop_pb_coll"; get_template_part($catColl); wp_die(); } add_action('wp_ajax_nopriv_GetPostColl', 'GetPostColl'); function GetPostMedia(){ $catMedia = "loop_pb_media"; get_template_part($catMedia); wp_die(); } add_action('wp_ajax_nopriv_GetPostMedia', 'GetPostMedia'); function GetPostDetails(){ $pb_details = $_POST['postURL']; get_template_part($pb_details); wp_die(); } add_action('wp_ajax_nopriv_GetPostDetails', 'GetPostDetails'); 

Und diese werden von diesen Ajax-functionen genannt

 $(document).delegate('h4.homus-partners-global-ajax[data-pb- cat*=pb_partner]', 'click', function(event) { event.preventDefault(); var pb_cat = "pb_partner"; var data = { 'action': 'GetPostPartner', catURL : "loop_"+ pb_cat, }; $.post(ajaxURL, data, function(response) { $( 'ul.homus-partners-section-slide' ).html(response); }); }); $(document).delegate('h4.homus-partners-global-ajax[data-pb-cat*=pb_ente]', 'click', function(event) { event.preventDefault(); var pb_cat = "pb_ente"; var data = { 'action': 'GetPostEnte', catURL : "loop_"+ pb_cat, }; $.post(ajaxURL, data, function(response) { $( 'ul.homus-partners-section-slide' ).html(response); }); }); $(document).delegate('h4.homus-partners-global-ajax[data-pb-cat*=pb_coll]', 'click', function(event) { event.preventDefault(); var pb_cat = "pb_coll"; var data = { 'action': 'GetPostColl', catURL : "loop_"+ pb_cat, }; $.post(ajaxURL, data, function(response) { $( 'ul.homus-partners-section-slide' ).html(response); }); }); $(document).delegate('h4.homus-partners-global-ajax[data-pb-cat*=pb_media]', 'click', function(event) { event.preventDefault(); var pb_cat = "pb_media"; var data = { 'action': 'GetPostMedia', catURL : "loop_"+ pb_cat, }; $.post(ajaxURL, data, function(response) { $( 'ul.homus-partners-section-slide' ).html(response); }); }); $(document).delegate('li.homus-partners-section-single', 'click', function(event) { event.preventDefault(); var pb_post_id = $(this).data('post-id'); var data = { 'action': 'GetPostDetails', postURL : "single_pb_post_details", post_id: pb_post_id }; $.post(ajaxURL, data, function(response) { $( '.homus-partners-detalis' ).html(response); console.log(pb_post_id); console.log(data.postURL); console.log(response); }); }); 

Die Antwort, die ich habe, ist immer 0, selbst wenn die Konsole des letzten Ajax-Aufrufs hier oben das richtige Post-ID zurückgibt. Das gesamte Projekt finden Sie in diesem Repo https://github.com/wanbinkimoon/homus-web.git

Solutions Collecting From Web of "wordpress ajax return 0"

Wenn Sie möchten, dass es sowohl für Besucherbenutzer als auch für angemeldete Benutzer am Front-End ausgetriggers wird, können Sie Folgendes tun:

 add_action( 'wp_ajax_my_action', 'my_action_callback' ); add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' ); 

Beispiel

 add_action( 'wp_ajax_GetPostMedia', 'GetPostMedia' ); add_action( 'wp_ajax_nopriv_GetPostMedia', 'GetPostMedia' );