index.php【WordPress】
2016-02-20 14:48
基本的にトップページと考えると楽だろう。
その中ではコンテンツを考えていくことになる。
ヘッダーやフッター、サイドバーなんてほかのファイルになっているので、まずはこれらを召喚呪文で呼び出さないといけません。
<?php get_header(); ?> <!-- このあたりにメインコンテンツ --> <?php get_sidebar(); ?> <?php get_footer(); ?>
とりあえず、基本的なことです。
これだけindex.phpの中に記述するだけで表示されることでしょう。
上から「get_header()」は「header.php」
「get_sidebar()」は「sidebar.php」
「get_footer()」は「footer.php」をそれぞれ呼び出し表示します。
で、基本的にトップページといえば、投稿の一覧が表示されること。
じゃぁ、それはどうやるかというと、
<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1> <?php the_excerpt(); ?> <p class="date"><a href="<?php the_permalink() ?>">続き</a> <?php the_date('Y-m-d'); ?> <?php the_time() ?></p> <?php endwhile; ?> <!--ページャー--> <div class="pager"> <?php global $wp_rewrite; $paginate_base = get_pagenum_link(1); if(strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()){ $paginate_format = ''; $paginate_base = add_query_arg('paged','%#%'); } else{ $paginate_format = (substr($paginate_base,-1,1) == '/' ? '' : '/') . user_trailingslashit('page/%#%/','paged');; $paginate_base .= '%_%'; } echo paginate_links(array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $wp_query->max_num_pages, 'mid_size' => 5, 'current' => ($paged ? $paged : 1), 'prev_text' => '«', 'next_text' => '»', )); ?> <?php else : ?> <p>投稿が一つもありません</p> <?php endif; ?>
アレンジは自分で。。。
まずは「have_posts()」から。記事があるかどうかをチェックするという関数。あればループさせることができます。ただし、ループ内でこの関数を呼び出してしまうと、永久ループが発生するので、十分気を付けなくてはいけません。
また、その横にある「the_post」は次のデータを取得するためのものです。
「the_permalink()」はその記事に対するURL、「the_title()」はその記事のタイトルをそれぞれ出力します。「the_excerpt()」は記事の内容ですが、特定の文字数を超えているものは、「…」で表現されます。「the_date()」は投稿日で、引数としてそのフォーマットを入れておきます。「the_time()」は投稿した時間を出力します。
また、その下にあるページャーですが、これは参考させていただいたサイトから持ってきたものです。
一番わかりやすくて使い勝手も非常によかったので、このまま使用しています。あとはCSSでなんとかなるでしょうからw