web-dev-qa-db-fra.com

Première page statique avec pagination de publications récentes

Est-il possible d'inclure la pagination d'index sur une page de garde statique?

J'ai un thème enfant de vingt-onze ans et j'essaie de créer une page d'accueil contenant un curseur pour les posts collants, suivi des messages récents contenant une requête personnalisée, que je voudrais paginer.

J'ai créé un modèle de page et défini ce modèle comme page d'accueil statique.

Pour une raison quelconque, la pagination ne fonctionne que lorsque je suis connecté à WordPress. Si je visite le site en tant que visiteur anonyme, je reçois un 404 et l'URL ressemble à "exemple.com/2011/09/09/268" au lieu de "exemple.com/page/2".

Est-ce que j'y vais de manière totalement fausse?

Vous trouverez ci-dessous le code du modèle de page:

<?php
get_header(); ?>

        <div id="primary">
            <div id="content" role="main">

                <?php the_post(); ?>

                <?php
                    $sticky = get_option( 'sticky_posts' );

                    // Proceed only if sticky posts exist.
                    if ( ! empty( $sticky ) ) :

                    $featured_args = array(
                        'post__in' => $sticky,
                        'post_status' => 'publish',
                        'posts_per_page' => 10,
                        'no_found_rows' => true,
                    );

                    // The Featured Posts query.
                    $featured = new WP_Query( $featured_args );

                    // Proceed only if published posts exist
                    if ( $featured->have_posts() ) :

                    $counter_slider = 0;

                    ?>


                <div class="featured-posts">
                    <h1 class="showcase-heading"><?php _e( 'Featured Posts', 'twentyeleven' ); ?></h1>

                <div class="flexslider">
                  <ul class="slides">
                <?php
                    // Let's roll.
                    while ( $featured->have_posts() ) : $featured->the_post();

                    if ( has_post_thumbnail()) : ?>
                    <li>
                        <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >
                           <?php the_post_thumbnail(); ?>
                           <p class="flex-caption"><a href="<?php the_permalink(); ?>"
                            title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ),
                            the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark">
                            <?php the_title(); ?></a></p>
                       </a>
                    </li>
                    <?php
                    endif; // End check for post thumbnail ?>
                <?php endwhile; ?>
                  </ul>
                </div>

                <?php //endif; // End check for more than one sticky post. ?>
                </div><!-- .featured-posts -->
                <?php endif; // End check for published posts. ?>
                <?php endif; // End check for sticky posts. ?>

                <?php
                    // Display our recent posts
                    // Setup for pagination of custom loop
                    $paged = (get_query_var('page')) ? get_query_var('page') : 1;

                    $recent_args = array(
                        'order' => 'DESC',
                        'post__not_in' => get_option( 'sticky_posts' ),
                        'category__not_in' => array( 46, 47 ),
                        'tax_query' => array(
                            array(
                                'taxonomy' => 'post_format',
                                'terms' => array( 'post-format-aside', 'post-format-link', 'post-format-quote', 'post-format-status' ),
                                'field' => 'slug',
                                'operator' => 'NOT IN',
                            ),
                        ),
                        'posts_per_page' => 10,
                        'paged' => $paged,
                    );

                    // Our new query for the Recent Posts section.
                    query_posts( $recent_args );

                    // The first Recent post is displayed normally
                    //if ( $wp_query->have_posts() ) : $wp_query->the_post();
                    ?>
                    <h1 class="showcase-heading"><?php _e( 'Recent Posts', 'twentyeleven' ); ?></h1>
                    <?php twentyeleven_content_nav( 'nav-above' ); ?>
                    <div class="recent-posts">
                    <?php
                        if ( $wp_query->have_posts() ) :
                        while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
                            <div class="recent-post">
                            <?php if ( "image" == get_post_format() ) :

                                get_template_part( 'content', 'image' );
                            else : ?>
                                <h2 class="entry-title">
                                    <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
                                </h2>
                                <div class="entry-meta">
                                    <?php twentyeleven_posted_on(); ?>
                                </div><!-- .entry-meta -->
                                <?php if( has_post_thumbnail() ) : ?>
                                    <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark">
                                    <?php the_post_thumbnail('excerpt-thumbnail', array('class' => 'alignleft') ); endif; ?></a>
                                <?php the_excerpt(); ?>
                                <p class="comments-link">
                                        <?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a Comment', 'twentyeleven' ) . '</span>', __( '<b>1</b> Comment', 'twentyeleven' ), __( '<b>%</b> Comments', 'twentyeleven' ) ); ?>
                                </p>
                            <?php endif; ?>
                            </div>
                            <hr />
                        <?php
                        endwhile; ?>
                        <?php
                        endif; ?>
                    <?php
                    twentyeleven_content_nav( 'nav-below' );
                    // Reset because we used query_posts
                    wp_reset_query(); ?>
                    </div> <!-- End recent-posts -->

                <?php //get_template_part( 'content', 'page' ); ?>

                <?php //comments_template( '', true ); ?>

            </div><!-- #content -->
        </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
2
jjeaton

Créez un fichier front-page.php en tant que copie de votre index.php. Ajoutez le code du curseur en haut de la page. WordPress va maintenant s'occuper de la pagination pour vous.

Si vous avez besoin du curseur sur la première page, enveloppez-le uniquement dans une condition:

// First page
if ( empty ( $GLOBALS['paged'] ) or 1 == $GLOBALS['paged'] )
{
    // slider code
}
// the regular loop follows
2
fuxia