用于SEO的AJAX循环和history.js

时间:2015-07-31 作者:Simone ReF

对于一个项目,我必须用“加载更多”按钮将主循环轴化,以显示更多的帖子(基本上和Canva Design School).为了做到这一点,我使用了tuts+ getting loopy article.

我不得不进行一些定制来替换这个:

$window.scroll(function() {
    var content_offset = $content.offset();
    console.log(content_offset.top);
    if(!loading && ($window.scrollTop() +
        $window.height()) > ($content.scrollTop() +
        $content.height() + content_offset.top)) {
            loading = true;
            page++;
            load_posts();
    }
});
使用此选项:

$(".load_more").on("click", ".btn", function() {
    $(".load_more").remove();
    if(!loading) {
        loading = true;
        page++;
        load_posts();
    }
});
现在它达到了目标。事实是,它对SEO完全不友好:没有带rel(prev/next)声明的本地分页,也没有指向下一页的基本链接,也没有机会获得正确分页的URL。

有没有办法将这种方法与历史相结合。js?我的意思是,是否有可能在每次单击“阅读更多”按钮时为每个页面生成URL,或者以不同的方式实现它会更好?

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

有一些插件可以在中添加下一个/上一个链接<head> 并遵循Google recomendations for paginated archives, 类似于recomendations for infinite scroll. 如果您有兴趣自己动手,可以在归档模板中更多地实现ajax加载,并执行类似的操作(未经过充分测试,只是一个示例):

// Print next and prev links for paged categories/archive/tags..etc
add_action( \'wp_head\', \'cyb_next_prev_links_for_archives\' );
function cyb_next_prev_links_for_archives() {

    if ( ! is_singular() ) {

        //No singular. We are in archive based pages

        global $paged;

        if( get_previous_posts_link() ){
            echo "<link rel=\'prev\' href=\'" .get_pagenum_link( $paged - 1 ). "\'>\\n";
        }

        if( get_next_posts_link() ){
            echo "<link rel=\'next\' href=\'" .get_pagenum_link( $paged + 1 ). "\'>\\n";
        }


    }

}
此外,值得一提的是rel="next" and rel="prev" links for archives have been proposed and approved for future releases.

结束