じじい

カテゴリーアーカイブのページで、投稿記事から画像ファイルを取得し、サムネイル一覧を表示する。

プラグインやカスタムフィールドを使ってサムネイル表示する方法もあるんじゃが、過去記事の編集をせずに実現する方法を模索した結果、 投稿記事内の 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

コメントをどうぞ