对于任何一个像我通过Googlez那样遇到这个问题的人来说,我是在尝试将新文章加载到一个单篇文章的底部。php页面(无限滚动)。
我发现,通过向“offset”值添加一个增量,然后使用$。post()而不是$。get(),我可以做到这一点。
按照上面概述的代码(以及随后的更改),我完成了这样的操作,基本的post实现(只是标题)将在稍后修复:
in functions.php:
add_action( \'wp_enqueue_scripts\', \'wpa56343_scripts\', 100 );
function wpa56343_scripts() {
wp_enqueue_script(
\'wpa56343_script\',
get_template_directory_uri() . \'/javascripts/ajaxscripts.js?ver=1.0\',
array( \'jquery\' ),
null,
false
);
wp_localize_script(
\'wpa56343_script\',
\'WPaAjax\',
array(
\'ajaxurl\' => admin_url( \'admin-ajax.php\' )
)
);
}
add_action(\'wp_ajax_wpa56343_more\', \'wpa56343_more\');
add_action(\'wp_ajax_nopriv_wpa56343_more\', \'wpa56343_more\');
function wpa56343_more(){
global $wp_query;
$offset = $_POST[\'postoffset\'];
$args = array(
\'offset\' => $offset,
\'posts_per_page\' => 1
);
$wp_query = new WP_Query( $args );
get_template_part( \'recent-posts\');
exit;
}
in ajaxscripts.js
jQuery(document).ready(function($){
var postoffset = 0;
$(\'#blog-more\').click(function(e){ // <- added
e.preventDefault(); // <- added to prevent normal form submission
postoffset = postoffset + 1;
$.post(
WPaAjax.ajaxurl,
{
action : \'wpa56343_more\',
postoffset : postoffset,
},
function( response ) {
//alert(response);
$(\'#new\').append( response );
}
);
});
});
in recentposts.php
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php //the_post_thumbnail() ?><?php the_title(); ?></a><br>
<?php endwhile; ?>
<?php endif; ?>
当你到达页面顶部时,我会将“onclick”改为“onclick”,但难的部分已经结束,这是儿童游戏。
感谢他作品的原始海报和他们的评论。