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()に関して詳しい情報等あれば関連サイトも合わせて教えて頂きたいです◎
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』
にしているのですが。。。
よろしくお願いします◎
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/%#%/’,
のままで大丈夫なのでしょうか??
よろしくお願いします。
ということは、パーマリンク設定を標準設定から変更している場合は、
この 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表示しています)。
対応可能でしょうか???
ちなみにパーマリンク設定は「/%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/」と入るようにはできますか?
いろいろやってみたんですが、よく理解していないもので、
もし、できたらすごくうれしいです。
よろしくお願いします。
解決済みのスレッドに追加で質問をしても返答が期待できませんよ;)
ベテランの皆さんは解決していない新規スレッドを見て返答していることが多いです。
この記事へのリンクを入れた新規スレッドを立ち上げることをオススメします。