トップは1件、アーカイブは複数エントリを表示|WordPress
以前定期購読してた日経BPから定期購読勧誘の電話を受けたフジカワです。どんだけピンチなんだよ、日経!ターゲット被りまくりの雑誌を乱発してるからそうなるんだ!
ちょと自分のブログを見てみたらなんと見づらい
色んな理由があるんだけど、大きく分けて
1.文章が下手なうえに長い
2.改行がヘタクソ
3.各種marign、paddingの調整がヘタクソ
など。もっとあるんだろうけど、話が進まないのでこのへんに。
で、一つの解決策として「長すぎるなら隠せばいいじゃん」という逃げの解決策を行うことにします。
トップはエントリ1つ。アーカイブは複数を抜粋して
更新のたびに見てくれるような奇特な人はいないだろうけど、それを想定するとトップの表示は1件あれば十分。
そしてカテゴリや日付のアーカイブは、複数を表示させてその中から見たいのを選んでもらうようにする。
というのが今回のゴール。
まずはアーカイブで何件表示させたいかの設定
wordpressの
「管理画面 > 一般設定 > 表示設定」の「ブログページの1 ページ内の投稿数:」に表示させたい本数を入力、保存。
これでトップページを含めて、全てのページに入力した分のエントリーがずらーっと表示されるようになる。
次にトップは1件になるように修正
index.phpの最初
<?php get_header(); ?>
の下に
if (is_home()) query_posts('showposts=1'); ?>
を追記する。これでOK。これで、
1.トップページのエントリ表示は最新の1件のみ
2.アーカイブページは設定した本数のエントリーを表示
という状態に。
次にながーいエントリを抜粋する方法
最近のwordpress(日本語版)なら、デフォルトでWP Multibyte Patchが入ってます(違ったらすいません)。
あとはarchive.php内のエントリを吐き出す部分の
<div class="entry"> <?php the_content(); ?> </div>
などを
<div class="entry"> <?php the_excerpt(); ?> </div>
とすれば、抜粋文章を自動的に全文と入れ替えて表示してくれます。抜粋文を入力していない場合は、本文の頭から100文字前後を表示します。切れた部分は[...]となります。
「これだとリンクが付かないからイヤなの!」というアナタに
僕もそうですが、これだと今イチ使いづらい。全文へのリンクは付かないし、なんかカッコ悪い。なので、もう一つの方法。
さっき変更した
<div class="entry"> <?php the_content(); ?> </div>
に少しだけ文章を追加して
<div class="entry"> <?php the_content( '『'. the_title('','',false) . '』の続きを読む' ); ?> </div>
と変更。
そして、エントリ投稿時に、区切りたいお好きなところに<!–more–>と入力。
これでOK。エントリの好きな部分でブレークして「(エントリ名)の続きを読む」として、全文へのリンクも設置できるようになります。