カテゴリーアーカイブのページで、投稿記事から画像ファイルを取得し、サムネイル一覧を表示する。
プラグインやカスタムフィールドを使ってサムネイル表示する方法もあるんじゃが、過去記事の編集をせずに実現する方法を模索した結果、 投稿記事内の img タグから画像URLを取得し、サムネイル表示する方法を紹介しよう。過去記事に手を加えたり、データベースに値を書き込む必要がなく、 とてもシンプルな方法じゃ。
使用方法
index.phpのカテゴリーアーカイブ出力箇所に、以下のコードを記述する。
テーマによっては、category.phpやarchive.phpかもしれん。
<?php if (have_posts()) :
$post = $posts[0];
$cat_id = get_cat_ID(single_cat_title('',false)); ?>
<?php if (is_category(10)) { /* カテゴリIDで条件分岐 指定なしで全て:例)ID:10だった場合 /* ?>
<h2><?php single_cat_title(); ?></h2>
<?php /* posts_per_pageで表示件数を30件にしている /*
query_posts($query_string . '&posts_per_page=30');
while (have_posts()) : the_post(); ?>
<div style="float:left;width=200px;padding:10px;text-align:center;">
<?php preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"]/i', $post->post_content, $imgurl) ?>
<?php if ($imgurl[1][0]): /* 画像が存在した場合 /* ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
<img src="<?php echo $imgurl[1][0] ?>" alt="<?php the_title_attribute(); ?>" width="180" /></a>
<?php else: /* 画像が存在しない場合 /* ?>
<br />
<?php endif ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
<?php the_title(); ?></a>
</div>
<?php endwhile; ?>
<?php }else{ /* それ以外のカテゴリIDの場合 /* ?>
<?php /* 通常出力の記述 /* ?>
<?php } ?>
<?php endif; ?>
カテゴリ: WordPress小技集
2010/04/19 5:31

