記事内に広告が含まれています。

記事一覧完成!

wordpressカスタマイズ wordpressでブログを作ろう

  wordpressの記事一覧ページ作成も最終段階。

 ようやく思い通りの記事一覧ができた!

 1ページの件数制御OK。

 ページャーOK。

 更新日順表示OK!

広告

記事一覧ページの今回のポイント

・1ページに表示する最大件数を表示する。

・ページャーをきちんと機能するようにする。

・更新日順に記事を並べる。

広告

記事一覧のコード

<?php
/*
Template Name:phpファイルの名前(「page-itiran.php」ならば「PAGE itiran」になる)
*/
?>
<?php get_header(); ?>
<div>
  <!--ループ開始-->
  <h2>
<?php the_title(); ?>
  </h2>
<div>
<?php
query_posts($query_string);
query_posts('posts_per_page=20&cat=0&paged='.$paged);//表示したいカテゴリIDを列挙
?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h4><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h4>
<p>
【最終更新日】<?php the_modified_date('Y/m/d') ?> |【初回公開日】<?php the_time('Y/m/d') ?><br>
【カテゴリー】 <?php the_category(', ') ?><br>
【タグ】<?php the_tags('', ', '); ?>
</p>
<p><?php echo mb_substr( strip_tags( stinger_noshotcode( $post->post_content ) ), 0, 60 ) . ''; ?></p>
<p><a class="more-link" href="<?php the_permalink() ?>">続きを見る</a></p>
 <?php endwhile;
?>
<?php else:
?>
 <p>記事はありませんでした</p>
<?php
endif;
wp_reset_postdata();
?>
  </div>
  <!--/kizi-->
  <!--ページナビ-->
  <?php if (function_exists("pagination")) {
pagination($wp_query->max_num_pages);
} ?>
  <!--ループ終了-->
</div>
<!-- END div.post -->
<?php get_footer(); ?>

記事一覧のコード説明

記事一覧を表示するページのタイトル

<?php the_title(); ?>

1ページに表示する記事の数

posts_per_page=20

 20で1ページに20件の記事を表示する。

記事のタイトル

<a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>

最終更新日

<?php the_modified_date('Y/m/d') ?>

初回公開日

<?php the_time('Y/m/d') ?>

カテゴリー

<?php the_category(', ') ?>

タグ

<?php the_tags('', ', '); ?>

記事の要約抜粋

<?php echo mb_substr( strip_tags( stinger_noshotcode( $post->post_content ) ), 0, 60 ) . ''; ?>

 0は0文字目から。

 60は60時目までを抜粋・要約として表示する。

ページャーを呼び出すタグ

<?php if (function_exists("pagination")) {
pagination($wp_query->max_num_pages);
} ?>

 function.phpに記載されているページャーを呼び出すタグ。

 もし、function.phpにページャーの記載が無い場合は、function.phpに以下の記載を追加する必要がある。

//ページャー機能
function pagination($pages = '', $range = 4)
{
     $showitems = ($range * 2)+1;
 
     global $paged;
     if(empty($paged)) $paged = 1;
 
     if($pages == '')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         {
             $pages = 1;
         }
     } 
 
     if(1 != $pages)
     {
         echo "<div class=\"pagination\"><span>Page ".$paged." of ".$pages."</span>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link

(1)."'>&laquo; First</a>";
         if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;

Previous</a>";
 
         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems

))
             {
                 echo ($paged == $i)? "<span class=\"current\">".$i."</span>":"<a href='".get_pagenum_link

($i)."' class=\"inactive\">".$i."</a>";
             }
         }
 
         if ($paged < $pages && $showitems < $pages) echo "<a href=\"".get_pagenum_link($paged +

1)."\">Next &rsaquo;</a>";
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a

href='".get_pagenum_link($pages)."'>Last &raquo;</a>";
         echo "</div>\n";
     }
}

記事を更新日ごとに並べるタグ

 本来は、orderby=modifiedというタグらしい。

 なので下のように記述するのだろうが、現在使っているwordpressテーマでは、すでにデフォルトのphp以外の追加されたphpでの並び順がどこかで指定されている様子なので省略してある。

<?php
query_posts($query_string);
query_posts('posts_per_page=20&orderby=modified&cat=0&paged='.$paged);//表示したいカテゴリIDを列挙
?>

 orderby=modifiedが使用中のテーマですでに指定されているのがわからず、えらく苦労した。

 気がつくのに丸1日かかちゃったよ。

 スタイルシートの指定は抜いてあるのであとはそれぞれスタイルシートを指定してもらえばいいかと思う。

wordpressプラグインを使わない記事一覧まとめページ

  現在はさらにアレンジしたコードを使っている。

 wordpressプラグインを利用しないで全記事リスト(全記事一覧)を表示するための方法を1ページにまとめてみたので参考にしてね。

wordpressプラグインを使わない記事一覧まとめページ

 

コメント

タイトルとURLをコピーしました