web-dev-qa-db-fra.com

Infinite Scroll ne fonctionne pas dans son propre thème

Je développe mon propre thème et a ajouté ceci dans une fonction appelée avec le hook after_setup_theme pour supporter le défilement infini:

add_theme_support( 'infinite-scroll', array(
    'container'  => 'content',
    'footer' => false,
    'wrapper' => false
) );

Je l'ai eu de http://jetpack.me/support/infinite-scroll/ . content est l'id du conteneur dans lequel les nouvelles publications doivent être insérées. footer est défini sur false car je ne souhaite pas qu'un autre pied de page soit ajouté. wrapper est défini sur false car je n'ai pas besoin d'un wrapper div.

Lorsque je vais sur ma page Web et que je fais défiler l'écran vers le bas, il y a un anymation de chargement, mais aucun message n'est chargé (il y a cependant plus de messages). Je vois qu'il y a une erreur javascript:

TypeError: infiniteScroll.scroller is undefined at infinity.js:485

Je vois aussi qu'il y a une demande ajax lorsque je fais défiler vers le bas, mais cette page renvoie:

{"type":"empty"}

Qu'est-ce que je fais mal? Comment puis-je obtenir ce travail?

1
Keelan

Vous devez utiliser un content.php ou content-<post format>.php OR pour utiliser le rendu:

add_theme_support( 'infinite-scroll', array(
    'container'  => 'content',
    'footer' => false,
    'render' => 'render_function',
    'wrapper' => false
) );

function render_function() {
    get_template_part('loop');
}

Cela implique que vous avez un loop.php.

3
Keelan

Il est fort probable que votre thème manque l'appel wp_head() dans le header.php (ajoutez-le juste avant le </head>) ou l'appel wp_footer() dans le pied de page.php (ajoutez-le juste avant le </body>).

2
Otto