Activer le défilement infini est aussi simple que d’ajouter ce fragment de code au fichier functions.php du thème (où 'contenu' est la id
du conteneur qui enveloppe les publications):
add_theme_support( 'infinite-scroll', array(
'type' => 'scroll',
'container' => 'content',
'footer' => false,
) );
Mais que dois-je faire si mon site Web a une disposition en plusieurs colonnes où, par exemple, une colonne affiche les derniers messages et l’autre colonne répertorie les derniers messages d’une balise (surbrillance)? c'est-à-dire qu'il y a essentiellement deux conteneurs.
J'ai essayé ces deux extraits (voir ci-dessous) et, d'une manière ou d'une autre, le défilement infini n'est activé que pour une colonne/conteneur.
add_theme_support( 'infinite-scroll', array(
'type' => 'scroll',
'container' => 'content',
'footer' => false,
) );
add_theme_support( 'infinite-scroll', array(
'type' => 'scroll',
'container' => 'highlights',
'footer' => false,
) );
et
add_theme_support( 'infinite-scroll', array(
'type' => 'click',
'container' => array( 'content', 'highlights' ),
'footer' => false,
) );
Qu'est-ce que je fais mal?
NOTE: Si le fait que vous ayez besoin d’un compte wordpress.com pour installer Jetpack vous retarde, veuillez essayer Slim Jetpack . Il fonctionne même sur une installation locale de WP et ne nécessite pas de compte wp.com.
Dans une réponse par courrier électronique, Kris Karkoski, ingénieur du bonheur (WordPress.com) chez Automattic, m'a dit: "Le défilement infini avec plusieurs colonnes n'est pas pris en charge dans Jetpack pour le moment."
J'ai vérifié le code source de Slim Jetpack et cette tâche ne peut être accomplie sans réécrire ce plugin.
Voici quelques astuces:
Vous devrez dupliquer la ligne 539 de '/modules/infinity-scroll/infinity.php' en indiquant:
jQuery.extend( infiniteScroll.settings.scripts, <?php echo json_encode( $scripts ); ?> );
Vous devrez dupliquer la ligne 475 de '/modules/infinity-scroll/infinity.js' pour initialiser le défilement infini. (Voyez-vous le nom de la variable correspond?)
infiniteScroll.scroller = new Scroller( infiniteScroll.settings );
De plus, vous devrez ajuster le module pour accepter plus d'attributs, ou au moins l'attribut post_type
pour pouvoir déterminer le type de post_type à apporter pour chaque boucle inifinite - ceci doit être fait à la fois dans JS et PHP (rappel de la fonction ajax).
Comme je l'ai dit, le plugin devrait être réécrit.