web-dev-qa-db-ja.com

最初と最新の投稿リンクを追加することは可能ですか?

私は次のコードを使用して、1ページに1件の投稿を表示しています(ブログページの表示は最大1件に設定されています)。

<?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(); ?>

だから今私は私のフロントページに前と次のリンクを持っています。最初の投稿と最新の投稿のリンクを追加することが可能かどうかを知りたいですか。

編集:

たとえば、最初の投稿と最新の投稿によって

1ページに1つの投稿しか許可していないので、表示される投稿は1つだけです。

以下の例では、投稿番号1と8のリンクを希望します。

12 3 4 5 6 78

2
janoChen

必要なものは$GLOBALS['wp_query']->max_num_pagesget_pagenum_link() です。それならget_query_var( 'paged' )max_num_pagesを比較し、等しくなければリンクを作成するだけです。

/**
 * 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 );
}

使用法

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

出力

enter image description here

2
fuxia

あなたが必要としているのは「ページネーション」のようです。 WP-PageNaviプラグインをインストールし、これをテンプレートファイル(index.php、アーカイブ)に追加します。 phpなど - どちらか関係のある方):

<?php wp_pagenavi(); ?>

プラグインの設定は一目瞭然です。 (ヒント!%PAGE_NUMBER%

0
its_me