G&W Design Life

WordPress勉強 vol 4

個別記事ページを作成する

index.php以外のテンプレートファイルを作ってテンプレートパーツを読み込んで行きます。

■single.phpを準備する
個別記事ページのテンプレートファイルは『single.php』です。
カテゴリー一覧と同じように、本文記事はWPループで表示します。

<?php
if(have_posts()):
    while(have_posts()): the_post();
?>
    ここにループする記事が入ります。
<?php
    endwhile;
endif;
?>

WPのメインクエリとは

singleページは個別記事ページですから、1件の記事を表示すればいいはずです。それなのになぜループで作成する必要があるのでしょうか?
それにはWPのメインクエリの特徴を理解する必要があります。
『クエリ』とはどのようにループを行うか指定する命令のようなもので、クエリがないとループを実行することができません。
ですが、TOPページではクエリを定義する記述をしていないのにループが実行できたのは、表示しているページに合わせてWPが自動的にクエリを実行しているからです。
例えば、カテゴリーページなら投稿されているカテゴリーのみループしたりします。
このように最初からWPがループ処理を用意しているのを『メインクエリ』です。
個別記事の場合、表示している記事を『1回だけループする』というメインクエリが用意されているので、singleページでもこのメインクエリを使ってWPループを使っているのです。

前後記事ページのリンクを表示

個別ページ、メインコンテンツの下部に前後の記事ページリンクを設置します。
前のページへ:previous_post_link テンプレートタグ
次のページへ:next_post_link テンプレートタグ
パラメーターを使用しない場合はリンク外に矢印記号が表示されます。
表示されるものを変更したい場合もパラメーターに渡して操作する事ができます。
『%link』を渡すと自動で出てくる矢印記号を消すことができます。

<nav class="postNav">
    <span class="prev"><?php previous_post_link('%link'); ?></span>
    <span class="prev"><?php next_post_link('%link'); ?></span>
</nav>

サイドバーにカテゴリーを表示する

サイドバーは他のページでも使用するかもしれません。なので、テンプレートパーツにして共通化できるようにしておきます。
サイドバーのテンプレートパーツは『sidebar.php』というファイル名で作りますが、すでにTOPページで作ってしまいました。
複数のサイドバーテンプレートパーツをtくりたい場合は『sidebar-任意の文字列.php』のようにします。

■sidebar-categories.phpというテンプレートを作成した場合
(1) single.phpにサイトバーの記述

    <?php get_sidebar('categories'); ?>

(2) sidebar-categories.phpに記述
カテゴリー表示の記述を書きます

    <section>
        <h1>カテゴリー</h1>
        <ul class="categories">
            <?php
            $args = array(
                'title_li' => '' , //見出しを削除
                'show_count' => true, //投稿を表示
            );
            wp_list_categories($args);
            ?>
        </ul>
    </section>

サイドバーに日付別アーカイブを表示する

カテゴリーと同じ手順で作成していきます。

■sidebar-archives.phpというテンプレートを作成した場合
(1) single.phpにサイトバーの記述

    <?php get_sidebar('archives'); ?>

(2) sidebar-categories.phpに記述
日付別アーカイブ表示の記述を書きます

    <section>
        <h1>カテゴリー</h1>
        <ul class="categories">
            <?php
                $args = array(
                    'type' => 'monthly', //月別を表示
                    'show_post_count' => true,//投稿数を表示
                );
                wp_get_archives($args);
            ?>
        </ul>
    </section>

管理画面でテンプレートタグを調べる方法

これまでにたくさんのテンプレートタグが出てきましたが、これらのテンプレートタグについて管理画面から調べる事が可能です。
メインナビゲーションメニューの『外観』→『テーマの編集』を選択すると『テンプレート』の箇所にテンプレートファイル一覧が表示されます。
『解説』プルダウンメニューにし、選択中のテンプレートファイルで使用されているテンプレートタグが表示されているのが確認できます。
選択後に『調べる』ボタンを押すと解説ページを表示してくれます。

Profile

エディトリアルデザイン・グラフィックデザインを経て数年前Webデザイナーに転身した30代デザイナーです。現代アートや地域とデザイン、ヒト・モノ・コト全般に興味があり。
イラストを描くのが好き。プログラミングはまだまだわからない事も多く初心者なんでメモ&学習としてこのブログを開設しました。どうぞよろしくお願い致します!

Recent Entries

Category