使用Ajax在Wordpress上加载更多随机帖子

时间:2014-08-25 15:47:02

标签: javascript php jquery ajax wordpress

我的Wordpress博客侧栏上有5个随机帖子。

我想创建一个按钮,当它被点击时,ajax会在其下载5个随机帖子。

问题在于我不想多次获得相同的随机帖子。 我没有关于如何做到的绝对计划,我可以保存帖子ID名称或类似的东西,但我想知道是否有更好的有效方法来做到这一点。

有人可以帮我解决这个问题吗?

这是我在侧边栏上的随机帖子,加载了7个帖子:

<?php
    global $post;
    $args = array( 'posts_per_page' => 7, 'orderby' => 'rand', 'post_status' => 'publish', 'offset' => 1);
    $rand_posts = get_posts( $args );
    $count_rand=0;
    foreach( $rand_posts as $post ) : setup_postdata( $post ); ?>
        <li><h2 class="r-h2"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></h2><p><?php echo get_the_post_thumbnail($thumbnail->ID, 'medium'); //the_excerpt(); ?></a></p></li>
    <?php endforeach;
        wp_reset_postdata();

1 个答案:

答案 0 :(得分:0)

您可以将为帖子返回的ID保存到WordPress瞬态系统(set_transient()get_transient()等),以便跟踪访问者的文章结果。然后,您可以将它们传递回查询参数。

$exclude = get_transient( '__my_unique_articles_retrieved' );

$args = array(
    'posts_per_page' => 7,
    'orderby' => 'rand',
    'post_status' => 'publish',
    'offset' => 1,
    'exclude' => $exclude
);

通过在此排除它们,您将确保始终获得7个帖子。如果达到某个计数,您也可以使用delete_transient()重置它。

有关WordPress瞬态的更多信息,请参阅此处... http://codex.wordpress.org/Transients_API