我对我刚刚接管的一个站点上的ajax调用有点问题。
我以前在其他网站上也使用过类似的调用,所以不确定这是插件限制还是冲突,但欢迎提出任何想法!
这个调用返回的是页面的全部内容,而不是我所期望的文章id。在ajax调用和“thisPost”var设置正确之前,我已经向js添加了一个警报。我尝试了多种不同的方法,但似乎都不允许我将post\\u id作为json对象返回。最终,返回的将是一个json对象,它的详细信息不仅仅是post\\u id,但在我让它工作之前,将其减少。
functions.php
function add_calendar_scripts(){
if (is_page_template(\'template-eventsplanner.php\') ) {
wp_register_script(\'calendar\', ( get_bloginfo(\'template_url\') . \'/js/calendar.js\'), array (\'jquery\'));
wp_enqueue_script(\'calendar\');
wp_localize_script( \'calendar\', \'MyAjax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
}
}
add_action(\'wp_head\', \'add_calendar_scripts\');
function get_full_event_callback(){
global $wpdb;
$response = array();
$post_id = intval($_POST[\'posted\']);
$response[] = array(\'id\'=>$post_id);
$result = json_encode($response);
echo "post_id";
die();
}
add_action( \'wp_ajax_nopriv_get_full_event\', \'get_full_event_callback\' );
add_action( \'wp_ajax_get_full_event\', \'get_full_event_callback\' );
calendar.js
jQuery(document).ready(function() {
var container = jQuery(\'body\'),
scrollTo = jQuery(\'.today\');
container.animate({
scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() - 120
});
Shadowbox.init({
skipSetup: true
});
jQuery(\'.event_box\').click( function(){
var pretext = "<h1>Davis Track Hire Job Information</h1>";
var thisPost= jQuery(this).data("event");
var contents, pdf_button;
var data = {
action: \'get_full_event\',
dataType: \'json\',
posted: thisPost,
};
jQuery.post(MyAjax.ajax_url, data, function(response) {
if(response!=0){
contents = pretext.concat(response);
pdf_button = "<a href=\'#\'>Link to PDF to follow</a>";
// open a welcome message as soon as the window loads
Shadowbox.open({
content: contents.concat(pdf_button),
player: "html",
title: "Event Details",
height: 600,
width: 500
});
}
});
});
});