我试图加载网页内容时,在wordpress点击一个导航项目。目的是用请求的数据刷新#content的内容。
,这是我的Nav
$sidebar_posts = query_posts( 'post_type=page&order=ASC' );
echo '<ul id="sidebar-ajax">';
foreach($sidebar_posts as $post){
echo '<li id="' .get_the_ID(). '">';
echo '<a class="ajax-click" href="#">'.get_the_title().'</a>';
echo '</li>';
}
echo '</ul>';,这是我的函数
add_action ( 'wp_ajax_nopriv_load-content', 'my_load_ajax_content' );
function my_load_ajax_content () {
$post_id = $_POST[ 'post_id' ];
$post = get_post( $post_id, OBJECT);
$response = apply_filters( 'the_content', $post->post_title );
echo $response;
die(1);
}
wp_enqueue_script( 'my-ajax-request', get_bloginfo('template_directory') . '/js/ajax.js', array( 'jquery' ) );
wp_localize_script( 'my-ajax-request', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );,这是我的JS
jQuery(document).ready(function($) {
$(".ajax-click").click(function() {
$("#loading-animation").show();
var post_id = $(this).parent("li").attr("id");
var ajaxURL = MyAjax.ajaxurl;
$.ajax({
type: 'POST',
url: ajaxURL,
data: {"action": "load-content", post_id: post_id },
success: function(response) {
$("#content").html(response);
$("#loading-animation").hide();
alert(post_id);
return false;
}
});
});
});当选择nav项时,警报显示正确的post_id,但$response返回为0。
有什么想法吗?
发布于 2014-09-09 11:23:36
测试时,你是否被锁定在wordpress中?如果是,试着添加
add_action ( 'wp_ajax_load-content', 'my_load_ajax_content' );就在你的
add_action ( 'wp_ajax_nopriv_load-content', 'my_load_ajax_content' );Wordpres必须为客人和被标记的用户挂钩。
https://stackoverflow.com/questions/25741404
复制相似问题