web-dev-qa-db-fra.com

Comment ajouter jQuery Infinite Faites défiler jusqu'à la page Mon archive personnalisée

J'ai actuellement une page d'archive personnalisée qui affiche mon message actuel en haut, puis des liens vers tous mes messages plus anciens en-dessous. Cependant, je dois diviser la page pour qu'elle affiche le message actuel, puis en dessous, uniquement les messages des mois en cours. Je souhaite utiliser le plugin jQuery infinite scroll pour afficher les publications les plus anciennes mois par mois, au fur et à mesure qu'elles défilent vers le bas de la page, les publications du mois suivant étant automatiquement chargées.

Voici mon code que je dois afficher le post actuel:

<?php get_header(); ?>
    <div id="members-msg" class="para-element" data-offset="-0.1">
        <div class="third fleft">
            <?php
            global $post;
            $tmp_post = $post;
            $args = array( 'numberposts' => 1, 'category' => 6 );
            $myposts = get_posts( $args );
            foreach( $myposts as $post ) : setup_postdata($post); ?>
                <a href="<?php the_permalink(); ?>"><h2><?php the_title(); ?></h2></a>
                <?/* <?php the_excerpt(); ?> */?>
                <?php the_content();?>
            <?php endforeach; ?>

        </div>
        <div class="twothirds fright">
            <div id="slider-con">
                <ul id="slider">
                    <?php 
                    $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); 
                    $attachments = get_posts($args);
                    if ($attachments) {
                        foreach ( $attachments as $attachment ) {
                            echo '<li>';
                            the_attachment_link( $attachment->ID , 'full' );
                            echo '</li>';
                        }
                    }
                    ?>

                </ul>
                            <?php $post = $tmp_post; ?>
            </div>
        </div>
    </div>
</div>
</div>

Voici le code que je dois afficher mes anciens messages:

<div id="reason-header" class="row-fluid">
<div class="parallax">
    <div class="para-element" data-offset="-0.3">
        <h3>Browse <span>Our</span> Archives</h3>
    </div>
    <div id="reasons-hdr" class="para-image" data-offset="-0.8">
    </div>
</div>
</div>
<div id="all-posts">
<div class="content">
    <?php
     global $post;
     $tmp_post = $post;
     $myposts = get_posts('numberposts=-1&category=6&orderby=date&order=DESC');
     foreach($myposts as $post) :
    ?>
    <?php 
        setup_postdata($post);
                $size = 'thumb';
                $images = get_children(array(
                'post_type' => 'attachment',
                'numberposts' => 1,
                'post_status' => null,
                'post_parent' => $post->ID));
                foreach($images as $image){
                $attachment = wp_get_attachment_image_src($image->ID, $size);
                ?>
                <div class="rea-con" style="background: url(<?php echo   
$attachment[0]; ?>) no-repeat center center;">  
                    <h4><a href="<?php the_permalink(); ?>" title="<?php the_title();?>"><?php the_title(); ?></a></h4>
                </div>
               <?php } ?>
        <?php endforeach; ?>
    <?php $post = $tmp_post; ?>
</div>
</div>  

Comment puis-je casser la section du code des anciens articles de sorte que, par défaut, il ne récupère que les articles du mois en cours, puis qu’ils défilent, les messages des mois précédents sont affichés automatiquement; avant que les messages?

Je veux utiliser le plugin jQuery infinite scroll pour le faire.

Toute aide est appréciée.

Merci!

4
Jeremy

Je suppose que c'est une page ou un modèle de page? J'avais un besoin similaire alors soumis un patch au plugin Infinite Scroll pour l'inclusion d'un nouveau filtre infinite_scroll_load_javascript. Par défaut, le plug-in ne se charge pas sur des articles/pages singuliers, mais avec ce filtre, vous pouvez le basculer pour le charger où vous le souhaitez.

function wpa_73217($load){
  if(is_page_template('my_special_template.php'))
       $load = true;
  return $load;
} 
add_filter('infinite_scroll_load_javascript', 'wp_73217');

Bien sûr, vos scripts d'initialisation doivent encore fonctionner ... vos sélecteurs doivent être corrects.

1
helgatheviking