トップは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');
?&gt;

を追記する。これで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。エントリの好きな部分でブレークして「(エントリ名)の続きを読む」として、全文へのリンクも設置できるようになります。

コメントを残してみる

コメント