Je dois charger quelques annonces, du HTML normal et deux script Java. J'ai essayé la méthode PHP de cette:
<?php $postnum++; if($postnum%10 == 0) { ?>
<div id="topset">
<ul id="top_ad_list">
<?php dynamic_sidebar('botad'); ?>
</ul>
</div>
<?php } ?>
Ce qui se passe est pour la première pagination du défilement infini, il chargera l’ajout, sur les nouvelles pages chargées, il ne chargera plus les annonces.
Le défilement infini que j'utilise comme suit: Infinite Ajax Scroll
Voir ceci: http://infiniteajaxscroll.com/docs/events.html#rendered
Donc, placez tout le code d'annonce dans une fonction ajax ( http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_%28action%29 )
add_action( 'wp_ajax_your_ad_fn', 'your_ad_fn');
add_action( 'wp_ajax_nopriv_your_ad_fn', 'your_ad_fn');
function your_ad_fn(){
// your ad code here
// if sending js, set Content-type header to application/javascript
// if sending html, text/html
}
Ensuite, dans votre js personnalisé,
ias.on('rendered', function(items) {
var $items = $(items);
jQuery.get(
'http://yoursite.com/wp-admin/admin-ajax.php', // I've just illustrated, don't write the url directly, do it via wp_localize_script
).done( function( data ) ){
$items.after(data); // append ad after all the loaded posts
});
})
Ceci est PAS le code exact, vous devez régler vous-même certains détails.
La solution à votre problème consiste à ajouter une fonctionnalité utilisant l'événement onLoadItems
, grâce auquel vous injectez une annonce à chaque fois que dix éléments supplémentaires ont été ajoutés, en gardant une trace du nombre d'éléments chargés en ajoutant la taille du tableau items
passé lorsque l'événement est déclenché. un compteur et lorsque le compteur atteint 10, ajoute une annonce et remet votre compteur à 0.
D'après votre réponse, je suppose que votre niveau de connaissance de JavaScript n'est pas terrible. Et aussi que vous auriez du mal à faire ce changement même avec la documentation fournie avec le script? Ai-je raison? Savez-vous ce que sont les événements et comment ils fonctionnent? Sinon, vous pouvez attendre que quelqu'un poste une solution entièrement codée ici, ou poser votre question sous forme de problème dans le suivi des problèmes de GitHub.