web-dev-qa-db-fra.com

Est-il possible d'ajouter un lien vers le premier et le dernier message?

J'utilise le code suivant pour afficher un message dans une page (le nombre de pages de blog montrant au plus est défini sur 1 message):

<?php
/**
 * Template Name: Front Page
 * @package WordPress
 * @subpackage Prominent
 * @since Prominent 1.0
 */
get_header(); ?>
<div id="tagline">
    <div class="container">
    </div><!-- .container -->
</div><!-- #tagline -->
<div id="content">
    <div class="container">
        <div id="mainbar">
            <?php while ( have_posts() ) : the_post(); ?>
                <div class="content-block-2">
                    <?php the_content(); ?>
                </div>
            <?php endwhile; ?>
            <?php /* Display navigation to next/previous pages when applicable */ ?>
            <?php if (  $wp_query->max_num_pages > 1 ) : ?>
                <?php next_posts_link( __( '&larr; Older posts', 'twentyten' ) ); ?>
                <?php previous_posts_link( __( 'Newer posts &rarr;', 'twentyten' ) ); ?>
            <?php endif; ?>
        </div><!-- #mainbar -->
    </div><!-- .container -->
</div><!-- #content-bottom -->
<?php get_footer(); ?>

Alors maintenant, j'ai un lien précédent et suivant dans ma page d'accueil. Je voudrais savoir s'il est possible d'ajouter un lien vers les premier et dernier messages?

EDIT:

Par premiers et derniers messages, je veux dire, par exemple,

Comme je n'autorise qu'un post par page, un seul post sera affiché.

Je voudrais un lien pour le post 1 et 8 dans l'exemple ci-dessous:

1 2 3 4 5 6 7 8

2
janoChen

Ce dont vous avez besoin, c'est $GLOBALS['wp_query']->max_num_pages et get_pagenum_link() . Ensuite, il vous suffit de comparer get_query_var( 'paged' ) avec max_num_pages et de créer un lien s’ils ne sont pas égaux:

/**
 * Link to last page of a paged archive.
 *
 * @param  string $text Link text
 * @return string Nothing if we are on the last page, a link otherwise.
 */
function t5_get_last_posts_link( $text = 'Last Posts' )
{
    global $wp_query;

    if ( // something is very wrong
        ! isset ( $wp_query->max_num_pages )
        // there is just one page
        or 1 == $last = $wp_query->max_num_pages
        // we are already on the last page
        or get_query_var( 'paged' ) == $last
    )
    {
        return '';
    }

    return sprintf( '<a href="%1$s">%2$s</a>', get_pagenum_link( $last ), $text );
}

/**
 * Link to the first page of a paged archive.
 *
 * @param  string $text Link text
 * @return string Nothing if we are on the first page, a link otherwise.
 */
function t5_get_first_posts_link( $text = 'First Posts' )
{
    global $wp_query;

    if ( // something is very wrong
        ! isset ( $wp_query->max_num_pages )
        // there is just one page
        or 1 == $wp_query->max_num_pages
        // we are already on the first page
        or 2 > (int) get_query_var( 'paged' )
    )
    {
        return '';
    }

    return sprintf( '<a href="%1$s">%2$s</a>', get_pagenum_link( 1 ), $text );
}

Usage

print t5_get_first_posts_link( 'Newest' );
print t5_get_last_posts_link( 'Oldest' );

Sortie

enter image description here

2
fuxia

Il semble que vous ayez besoin de "pagination". Installez le plugin WP-PageNavi et ajoutez-le dans votre fichier de modèle (index.php, archive. php, etc. - selon ce qui est pertinent):

<?php wp_pagenavi(); ?>

Les paramètres du plugin sont explicites. (CONSEIL! %PAGE_NUMBER%)

0
its_me