我最近的处境和你一样。我这样做可能是错误的,而且容易出现bug,但如果你能接受,这可能会有所帮助。
基本上,您可以在循环文件的顶部创建一个空数组,例如循环索引。php。
$忽略=数组();
然后在post循环中,您希望将这些post ID添加到数组中(在while循环中)。
$忽略[]=$发布->ID;
很明显,您将有一个链接,可以单击该链接来显示更多的帖子,并绑定了一个Javascript单击事件,可能是使用jQuery。在链接上,将rel标记设置为ID的数组,您必须对该数组执行foreach操作,并用逗号分隔每个标记。
然后在循环模板中查找从AJAX url传递的GET变量,并根据WP\\U查询使用post\\u not\\u in条件,以便它不会加载到已加载帖子的ID中。
如果您需要示例代码,我很乐意为您编写一个示例。
我最近的处境和你一样。我这样做可能是错误的,而且容易出现bug,但如果你能接受,这可能会有所帮助。
基本上,您可以在循环文件的顶部创建一个空数组,例如循环索引。php。
$忽略=数组();
然后在post循环中,您希望将这些post ID添加到数组中(在while循环中)。
$忽略[]=$发布->ID;
很明显,您将有一个链接,可以单击该链接来显示更多的帖子,并绑定了一个Javascript单击事件,可能是使用jQuery。在链接上,将rel标记设置为ID的数组,您必须对该数组执行foreach操作,并用逗号分隔每个标记。
然后在循环模板中查找从AJAX url传递的GET变量,并根据WP\\U查询使用post\\u not\\u in条件,以便它不会加载到已加载帖子的ID中。
如果您需要示例代码,我很乐意为您编写一个示例。
**Update w/ Example Code **
<div id="posts">
<?php
$numposts = wp_count_posts(\'post\');
$numposts = $numposts->publish;
// Posts per page
$per_page = 9;
// Determine total amount of pages
$total_pages = ceil($numposts / $per_page);
// Get current page
$paged = (get_query_var( \'page\' )) ? get_query_var( \'page\' ) : 1;
// Above your loop
$ignores = array();
// If we have sent ignore ID\'s
if ( $_GET[\'ignore\'] )
{
$get_ignores = trim($_GET[\'ignore\'], \',\');
$get_ignores = explode(\',\', $get_ignores);
}
// If we have ignore ID\'s
if ( !empty($get_ignores) )
{
foreach ($get_ignores AS $k => $v)
{
$ignores[] = $v;
}
}
$count = 1;
$my_args = array(
\'posts_per_page\' => 9,
\'paged\' => get_query_var( \'page\' ),
\'post__not_in\' => $ignores,
\'post_status\' => \'publish\'
);
$my_query = new WP_Query($my_args);
if ( $paged <= $total_pages):
$paged = $paged + 1;
// The loop
while ( $my_query->have_posts() ): $my_query->the_post();
// At the start of the loop populate the used post ID\'s
$ignores[] = $post->ID;
?>
<div class="post">
<h2><?php the_title(); ?></h2>
</div>
<?php $count++; endwhile; endif; ?>
<?php
if ( $ignores AND is_array($ignores) )
{
// Create a comma separated string of ignore ID\'s
foreach ( $ignores AS $k => $v ) {
$ignore_str .= $v.\',\';
}
// Trim the ignore string of any rogue commas
$ignore_str = ltrim($ignore_str, \',\');
$ignore_str = rtrim($ignore_str, \',\');
$ignore = site_url(\'page/\'.$paged.\'/?ignore=\'.$ignore_str.\'\');
}
?>
<a href="#" rel="<?php echo $ignore; ?>" id="load-more">Load More Posts</a>
</div>
<?php if ( !$my_query->have_posts() ) : ?>
<section id="no-posts">
<div id="post-0" class="post error404 not-found">
<h1 class="entry-title"><?php _e( \'Not Found\', \'twentyten\' ); ?></h1>
<div class="entry-content">
<p><?php _e( \'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.\', \'twentyten\' ); ?></p>
</div>
</div>
</section>
<?php endif; ?>
<script type="text/javascript">
(function($){
$("#load-more").on(\'click\', function(e)
{
e.stopImmediatePropagation();
$("#posts").append("<div id=\'loading\'><p>Loading posts</p></div>");
$("<div>").load($(this).prop(\'rel\') + \' #posts\', function()
{
$(\'#posts\').append($(this).find("#posts").html()).fadeIn(\'slow\');
$("#loading").remove();
});
if ($("#no-posts"))
{
$("#no-posts").remove();
$("#load-more").remove();
}
e.preventDefault();
});
})(jQuery);
</script>