そらもよう

とどまることのない空のようにアレコレやってます。

そらもよう header image 2

WPで過去ログ表示方法を変えるには

2010年02月22日 · コメント(0) ·

WPテンプレート:librioのカスタマイズについて第3弾です。

今回は過去ログの表示方法でタイトル一覧と、記事の抜粋入りを使い分ける方法です。

『諦められないもん!』では、ニュースよりをクリックしたときは、過去ログのタイトル一覧が新着順に並ぶようになっていて、これ以外のメニュー(除:home,about)をクリックしたときは、トップページと同じデザインで新着順にタイトル、内容(約200字)、日付、タグが出るようにしてあります。

タイトル一覧で表示する場合は下記の様にしました。ファイル名はcategory-4.phpのように-IDをつけてあります。
<?php if (is_category(4)) { ?>でカテゴリーIDの指定を、<?php the_title(); ?>でタイトル一覧を出しています。


<div class="post post-list">
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php if (is_category(4)) { ?>
<h1>カテゴリー:<span><?php single_cat_title(); ?></span> の投稿一覧</h1>
<?php } ?>

<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a> -<?php the_time('Y年m月d日') ?></li>
<?php endwhile; ?>
</ul>
</div>

内容の抜粋を出すほうは、トップページと同じデザインでタイトルとかを出したかったので、最初のdivのクラス名をpostに変更しました。エントリー抜粋…続きを読むのところは

<?php the_excerpt(); ?><a href="<?php the_permalink(); ?>">…続きを読む</a>

となってます。こちらのファイル名はIDなしの、category.phpです。
全体は下記となってます。

<div class="post">
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php /* If this is a category archive */ if (is_category()) { ?>

<h3>カテゴリー:<span><?php single_cat_title(); ?></span> の投稿一覧</h3>
<?php } ?>

<?php while (have_posts()) : the_post(); ?>
<h1 class="post-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h1>
<?php the_excerpt(); ?><a href="<?php the_permalink(); ?>">…続きを読む</a>
<div class="post-info">
<?php the_time('Y年m月d日') ?>
<?php the_tags('| tags: ', ', ', ''); ?>
</div>
<?php endwhile; ?>
</div>

通常だと抜粋の最後のところが[…]となってしまって、そこがクリックできるならともかく[]がある意味がわからなかったので、そこも修正。これは日本語版の標準で入っているプラグイン:wp-multibyte-patchdを修正するしかないです。wp-multibyte-patc.phpの89,90行目(行途中の改行なしにしてカウント)を下記のように変えました。

$title = (strlen($title) > 250) ? mb_strcut($title, 0, 250, $blog_encoding) . '...' : $title;
$excerpt = (strlen($excerpt) > 255) ? mb_strcut($excerpt, 0, 252, $blog_encoding) . '...' : $excerpt;

カテゴリー :メモ
タグ :
トラックバック:

楽天市場