バックナンバーの表示について
-
wp-pagenaviというプラグインがあり、ある程度表示方法をカスタマイズできるので、試してみてはいかがでしょう? 標準で日本語言語ファイルも入っています。
ただ、現在はテーマ側で対応させたりしているため、実際にプラグインは使っていませんので、あしからず。
一応プラグインのダウンロード先を記しておきます:WP-PageNavi
こんにちは
wordPressには、ひとつの投稿を分割してページング表示する機能があります
とても便利な機能なので、よろしければご検討くださいテーマファイルに
<?php wp_link_pages(); ?>
を書いておけば、
後は、通常の投稿本文で
<!--nextpage-->
それらしいものが出来るので、お好みでスタイルシートにスタイルを設定して使えます。
twentyten等なら、テーマ側では、wp-link_pages()が書いてありますから、
投稿の途中にに
<!--nextpage-->
と入れて書いてみてください。nobitaさん、こんにちは。
nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?
<!–nextpage–>はnobitaさんもお書きになられているとおり、記事本文に挿入することで、長くて読みづらくなってしまった1つの記事を複数ページで構成されているかのようにするものだと理解していましたが、万一、理解に間違いがあるようでしたら後学のためにもご指摘ください。
chestnut_jpさん こんにちは
nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?
私は、質問者ではないのでお答えできませんが、「そうかもしれない」と思います
<!–nextpage–>はnobitaさんもお書きになられているとおり、記事本文に挿入することで、長くて読みづらくなってしまった1つの記事を複数ページで構成されているかのようにするものだと理解していましたが、万一、理解に間違いがあるようでしたら後学のためにもご指摘ください。
特に、指摘することはありません
お答えしている内容それ自体が、「間違っているよ」という突っ込みは、私的には、歓迎ですが、「ちょっと、ピントあってないんじゃない」といわれても、天然です
この場は、blacksanderサンのために、「お役に立つ」ための場なので、「ピントあってない奴」の話で盛り上がってはいけないという事でご了解ください :-)
ご返信が遅れてしまい大変申し訳ありません。
確かにchestnut_jpさんのおっしゃる通りです。
nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?
でもnobitaが教えてくださったことも今後、使用する機会がありそうなので
メモっておきます。ありがとうございます!!やはり、WP-PageNaviでの見せ方ではなく
シンプルに
PREV 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 NEXT
これがいいと言われてしまいました…やはり方法はないものなのでしょうか?
ご返信が遅れてしまい大変申し訳ありません。
確かにchestnut_jpさんのおっしゃる通りです。
nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?
でもnobitaが教えてくださったことも今後、使用する機会がありそうなので
メモっておきます。ありがとうございます!!やはり、WP-PageNaviでの見せ方ではなく
シンプルに
PREV 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 NEXT
これがいいと言われてしまいました…やはり方法はないものなのでしょうか?
blacksanderさん、こんにちは。
WP-PageNaviの設定画面のうち、「総ページ数用テキスト」の箇所を空欄にし、「前のページ用テキスト」を「PREV」に、「次のページ用テキスト」を「NEXT」にすれば、ご希望の表示になるはず(|で区切られるかどうかはテーマなどによっても異なることはあります)なのですが、それでもご不満なようですと、今回は申し訳ありませんがお力になれそうにありません。
まずはWP-PangeNaviをいろいろ弄ってみて、表示がどのように変化するかを見てみるのもいいとは思いますが・・・
WP-PangeNaviのようなプラグインを使ってもいいですし、
プラグインを使わなくても、WordPressの paginate_links() という関数を呼ぶことでページネーションが表示されます。
どちらの場合もCSSで指定することによって、好きな表示形式が可能ですよ。こんにちは、
投稿順に番号でリンクするだけでいいなら、以下の関数をを作ってみたので、よろしければお試しください
テーマの、functions.phpに、以下を貼り付け
<?php function my_backnumber($min=1,$max=5,$separater='|'){ global $posts; global $post; //第二引数が0なら公開エントリすべて if($max == 0){ $count_posts = wp_count_posts(); $max = $count_posts->publish; } query_posts("order=ASC&showposts=-1"); if(have_posts()){ $i = 0; $result = ""; $memo = ""; /** * ハイパーリンクの作成 * * * * */ while (have_posts()) : the_post(); if($i>=$min and $i<=$max){ if(get_permalink( $post->ID ) == "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']){ $class = "current"; $memo = $i; }else{ $class = "back-number-link"; } $result .= "<a href=\"". $post->guid."\" class=\"$class\" title=\"".$post->post_title."\">$i</a>"; } $i++; endwhile; } /** * リンクセパレータの追加と、prev next リンクの追加 * * * * */ if($memo > $min or $memo < $max - 1){ $b = $memo - 1; $a = $memo + 1; if(preg_match("|(<a[^>]+>)($b)(</a>)|",$result,$regs)){ $before = $regs[1]."prev".$regs[3]." « "; }else{ $before = ""; } if(preg_match("|(<a[^>]+>)($a)(</a>)|",$result,$regs) and !empty($memo)){ $after = " » ".$regs[1]."next".$regs[3]; }else{ $after = ""; } $result = str_replace('a><a','a>'.$separater.'<a',$result); echo "<div class=\"back-number\">".$before.$result.$after."</div>"; } wp_reset_query(); } add_filter('wp_head','back_number_style'); function back_number_style($content){ echo $content.'<style type="text/css">a.current{color:red;}</style>'; } ?>
footer.php等のテンプレートファイルに
<?php my_backnumber(1,40); my_backnumber(41,80); ?>
引数は、my_backnumber(最初に表示したい番号,最後の番号,’セパレータ’)です。
エントリがたくさんある場合に、分割して書けるようにしています。現在標示しているページの番号は、赤く表示、prev nextは、赤いページの次のページや前のページへのリンクです
- トピック「バックナンバーの表示について」には新たに返信することはできません。