web-dev-qa-db-ja.com

ページと投稿のページ付け

新しいテーマでPaginationを使いたいのですが、正しく動作させることができません。

私は私のfunctions.phpファイル内のいくつかのコードを使用していてそしてその関数を呼び出しています。 「ブログ」ページでは機能しますが、ページ付けされた投稿やページでは機能しません。

これが私のコードです:

// Pagination for paged posts, Page 1, Page 2, Page 3, with Next and Previous Links, No plugin
function canvas_pagination()
{
    global $wp_query;
    $big = 999999999;
    echo paginate_links(array(
        'base' => str_replace($big, '%#%', get_pagenum_link($big)),
        'format' => '?paged=%#%',
        'current' => max(1, get_query_var('paged')),
        'total' => $wp_query->max_num_pages,
        'type' => 'list'
    ));
}

add_action('init', 'canvas_pagination'); // Add our Pagination

そして機能を呼び出します:<?php get_template_part('pagination'); ?>

このコードはindex.phpファイル内でうまく機能します。こちらを参照してください。 http://website-test-lab.com/sites/blank_canvas/blog/

しかしsingle.phpとpage.phpの中にはありません。

  • サイトURL +/paginated /
  • サイトURL +/page-pagination /(ここに2つ以上のリンクを追加することはできません

なぜこれがうまくいかないのか、そしてそれを修正するために何を修正する必要があるのか​​、誰かが説明できますか。

Wp_link_pagesを使用してみましたが、必要な出力をカスタマイズすることはできません。

前もって感謝します

1
Huw Rowlands

ポストナビゲーション

これがTwenty 12テーマのsingle.phpファイルで行われている方法ですが、Twenty Fourteenにはページに対しても有効な解決策があるようです。

<nav class="nav-single">
                <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3>
                <span class="nav-previous"><?php previous_post_link( '%link', '<span class="meta-nav">' . _x( '&larr;', 'Previous post link', 'twentytwelve' ) . '</span> %title' ); ?></span>
                <span class="nav-next"><?php next_post_link( '%link', '%title <span class="meta-nav">' . _x( '&rarr;', 'Next post link', 'twentytwelve' ) . '</span>' ); ?></span>
            </nav><!-- .nav-single -->

テーマ固有のフックを使ったり、WordPressのコンテンツフックをフィルタリングしたりして、あなたの関数ファイルからこのコードをフックすることができます。

ここにあなたの関数ファイルでコンテンツフィルタを使用するいくつかの良い 例があります

詳細 http://codex.wordpress.org/Next_and_Previous_Links

ページナビゲーション

これは私が書いたチュートリアルです 。これは二十四テーマからのコードを使用します。

それはあなたがフックやコンディショナルタグを使ってカスタム関数で使うことができるかテンプレートファイルで直接使うことができるテンプレートタグを作成します。

1
Brad Dalton