サポート » 使い方全般 » 過去ログをナビ的に表示するには?

  • 解決済 783331

    管理ページ内の >各種設定>表示設定 でブログページの最大投稿表示数を「15」に設定しているのですが、それ以前の投稿を見るために、『 1|2|3|…..|31|32 』みたいなリンクをページ下部につけたいのですが、どのようにWordpressのタグを設定すれば良いのでしょうか?
    (楽天の検索結果の下部にあるナビゲーションリンクみたいな感じです。)
    (ここでは”1″が最新の15件で、”32″が最も古い15件(15件より少ない場合もある)とします。)
    TOPページ、検索結果ページ、各カテゴリー、アーカイブの各月ごとに上記のリンクを付けたいと思っています。
    直前のページや直後のページをリンクさせたい時は、<?php posts_navi_link(); ?>を設置すれば良いことは分かっているのですが、上記のように『 1|2|3|…..|31|32 』という風に記事リンクを作りたい時はどのようにすれば良いか分かりません。
    よろしければ教えてください!お願いします。

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    WordPress 2.2.3 とはちょっと古いですね。この場合は WP-PageNavi を使うのがよさそうです。なお、WP-PageNavi はバージョンごとに対応する WordPress のバージョンが違いますので、ダウンロードがちょっと難しいです (WordPress 2.2.x 対応はバージョン 2.2.0 あたりだったかな?)

    WordPress 2.5 以降ならば、標準の paginate_links() テンプレートタグを使えば簡単に実現できます。WP-PageNavi なんて不要です 😉

    トピック投稿者 783331

    >lilyfanさん
    ありがとうございます◎ 最新のWordPress(2.6)にアップグレードしました!
    2.2辺りのバージョンのタグしか知らないんで、paginate_links()に関して詳しい情報等あれば関連サイトも合わせて教えて頂きたいです◎

    モデレーター IKEDA Yuriko

    (@lilyfan)

    2.2辺りのバージョンのタグしか知らないんで、paginate_links()に関して詳しい情報等あれば関連サイトも合わせて教えて頂きたいです◎

    さきほど自サイトに使い方を書いてみました。ここにも書いておきましょう。

    <div class="tablenav"><?php echo paginate_links( array(
    	'base' => get_pagenum_link(1) . '%_%',
    	'format' => 'page/%#%/',
    	'total' => $wp_query->max_num_pages,
    	'mid_size' => 3,
    	'current' => ($paged ? $paged : 1),
    )); ?></div>

    標準のパーマリンクの場合は base, format 部分を以下にしてください。

    'base' => add_query_arg( 'paged', '%#%' ),
    	'format' => '',

    同時に、style.css に以下の記述を入れてください。

    .tablenav {
    	color: #2583ad;
    	background:white;
    	margin: 1em auto;
    	line-height:2em;
    	text-align:center;
    }
    
    a.page-numbers, .tablenav .current {
    	color: #00019b;
    	padding: 2px .4em;
    	border:solid 1px #ccc;
    	text-decoration:none;
    	font-size:smaller;
    }
    
    a.page-numbers:hover {
    	color:white;
    	background: #328ab2;
    }
    
    .tablenav .current {
    	color: white;
    	background: #328ab2;
    	border-color: #328ab2;
    	font-weight:bold:
    }
    
    .tablenav .next, .tablenav .prev {
    	border:0 none;
    	background:transparent;
    	text-decoration:underline;
    	font-size:smaller;
    	font-weight:bold;
    }

    テンプレートタグ自体は簡単なんですが、「それっぽく見せる」ためのスタイルシートの作り込みがちょっとややこしいですね。
    そういう面では、WP-PageNavi を使ってしまうのはラクかもしれません 😉

    トピック投稿者 783331

    >lilyfanさん
    おお、すごいですね◎ 2.2ユーザーだった自分が恥ずかしい笑
    このナビゲーションリンクはTOPだけじゃなくて、各カテゴリ・検索結果でも同じ要領で表示可能ですか?
    スタイルシートに関しては全く問題なく飲み込んで理解できました◎

    トピック投稿者 783331

    あと一つ質問があって、
    『標準のパーマリンクの場合は base, format 部分を以下にしてください。』
    ‘base’ => add_query_arg( ‘paged’, ‘%#%’ ),
    ‘format’ => ”,
    とあるのですが、これはどういうことでしょう??
    ちなみに私のパーマリンク設定は
    『/%category%/%year%%monthnum%%day%/%post_id%.html』
    にしているのですが。。。
    よろしくお願いします◎

    モデレーター IKEDA Yuriko

    (@lilyfan)

    archive.php や search.php を作っていないならば、index.php に書けばどちらにも反映されます。archive.php, search.php, category.php などを作っていれば、そちらにも同じような記述が必要です。

    どちらかというと、わたしは「プラグインを入れて機能アップ」よりも、WordPress の標準機能でなんとかするのが好みのため、こういう回答になっています 😉 テンプレートタグもちょっとずつ強化されているようなので、みなさんもぜひ研究してみてください。

    トピック投稿者 783331

    >lilyfanさん
    ふむふむ、確かにプラグイン装備よりもタグ記述した方が何かと便利ですよね◎

    > 標準のパーマリンクの場合は base, format 部分を以下にしてください。
    > ‘base’ => add_query_arg( ‘paged’, ‘%#%’ ),
    > ‘format’ => ”,

    ということは、パーマリンク設定を標準設定から変更している場合は、
    この add_query_arg(); の中身を変える必要があるのでしょうか??
    それとも
     ’base’ => get_pagenum_link(1) . ‘%_%’,
     ’format’ => ‘page/%#%/’,
    のままで大丈夫なのでしょうか??
    よろしくお願いします。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    ということは、パーマリンク設定を標準設定から変更している場合は、
    この add_query_arg(); の中身を変える必要があるのでしょうか??

    `add_query_areg()` というのは、?paged=19 とか ?m=200807&paged=2 とかいう形式の URL にするということなので、標準のパーマリンクのみで有効です。
    /2008/07/27/post1999/ などのパーマリンクの場合は、決め打ちで ‘page/19/’ とかの形式を付与すればいいので、後者のコードになります。
    手動でコードを変更するのはあまり賢くない/かっこよくないので、うまく自動設定されるようちょっと研究してみます。

    トピック投稿者 783331

    >lilyfanさん
    <div class=”tablenav”><?php echo paginate_links( array(
    ‘base’ => get_pagenum_link(1) . ‘%_%’,
    ‘format’ => ‘page/%#%/’,
    ‘total’ => $wp_query->max_num_pages,
    ‘mid_size’ => 3,
    ‘current’ => ($paged ? $paged : 1),
    )); ?></div>
    をindex.phpに打ち込んだところ、TOPページにはナビゲーションリンクが表示されてきちんと動作したのですが、カテゴリ・アーカイブに関しては、きちんとリンクの表示はされるのですが、リンクを押しても404ページが表示されて動作しません。。。
    ちなみにパーマリンク設定は「/%category%/%year%%monthnum%%day%/%post_id%.html」です(htaccessをいじってhtml表示しています)。
    対応可能でしょうか???

    モデレーター IKEDA Yuriko

    (@lilyfan)

    ちなみにパーマリンク設定は「/%category%/%year%%monthnum%%day%/%post_id%.html」です

    パーマリンクの末尾がスラッシュで終ってない場合が不安だったのですが、やはり不具合が出てしまいましたか。申し訳ありません。

    base と format を以下のようにすると動くはずです。これは、他のパーマリンク構造でも使えます。

    'base' => trailingslashit(get_pagenum_link(1)) . '%_%',
    	'format' => user_trailingslashit('page/%#%/', 'paged'),

    トピック投稿者 783331

    >lilyfanさん
    すごい!できました◎
    どうやら
      ’base’ => trailingslashit(get_pagenum_link(1)) . ‘%_%’,
      ’format’ => user_trailingslashit(‘page/%#%/’, ‘paged’),
    は汎用的に使えそうですね!
    助かりました、ありがとうございました◎

    一つ質問があります。

    このナビゲーションなんですけど、トップ以外のリンクに「/page/(数字)/」がつきますけど、
    リンクの数字「1」へのリンク先だけ特定のページに設定することはできますか?
    それか、「1」のリンクにも「/page/1/」と入るようにはできますか?

    いろいろやってみたんですが、よく理解していないもので、
    もし、できたらすごくうれしいです。

    よろしくお願いします。

    解決済みのスレッドに追加で質問をしても返答が期待できませんよ;)
    ベテランの皆さんは解決していない新規スレッドを見て返答していることが多いです。
    この記事へのリンクを入れた新規スレッドを立ち上げることをオススメします。

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • トピック「過去ログをナビ的に表示するには?」には新たに返信することはできません。