ワードプレステーマのTOPページ(front-page.php)の見本

WordPress

この記事ではWordPress(ワードプレス)サイトのフロントページの作成手順とその見本を紹介します。サイトの肝となる要素なのでしっかりマスターしましょう。

ファイルの配置は他と変わらず以下のようになっています。

themes
┗original Thema
 ┗front-page.php
  index.php
  ・
  ・

ファイルの構成に関しては以下のページを参考にして下さい。

front-page.phpの考え方

front-page.phpはWordPressでWEBサイトを作成する際のフロントページを表示するためのテンプレートファイルです。
front-page.phpが存在しない場合はhome.phpが読み込まれます。それも存在しない場合はindex.phpがフロントページとなりますが、通常のサイトの場合はフロントページにfront-page.phpを使い、ブログページにindex.phpもしくはhome.phpを使用することが多いです。(このようなWPテンプレファイルには優先順位が設けられています。)

またfront-page.phpでフロントページを作成する際は固定ページで「HOME」ページを作成してテンプレートとしてfront-page.phpを使用する事をおすすめします。(何かしらの不備でindex.phpやhome.phpをフロントで読み込ませないための保険です。)その方法を次で紹介します。

フロントページを固定ページで読み込む

まずは「front-page.php」という名前でファイルを作ります。そこに以下の記述をして下さい。
中身はコメントですが、WordPressではこのようにしてテンプレートファイルの設定を行う事が出来ます。

今回の場合は「TOPページ」という名前のテンプレートを作成しています。

<?php
/*
Template Name: TOPページ
*/
?>

すると以下の固定ページの設定部分のページ属性に「TOPページ」が追加されています。

固定ページの名前は「HOME」で作成しています。

次にダッシュボード→設定表示設定の「ホームページの表示」の部分を「固定ページ」にします。そこの「ホームページ」の選択を先程作った固定ページの「HOME」にします。

フロントページの要素を作成する

まずは以下は見本です。

<?php
/*
Template Name: TOPページ
*/
?>

<! –  header.phpを呼び出す -->
<?php get_header(); ?>

<main>

<! – トップニュース -->
<div class="container top_left_container">

    <div class="m-5">
        <h1 class="text-center top_h2">TOP NEWS</h1>
        <p class="text-center">トップニュース</p>
    </div>

    <div class="row">

        <?php
        $args = array(
            'posts_per_page' => '6', //表示件数。-1なら全件表示
            'post_type' => 'post', //カスタム投稿タイプの名称を入れる
            'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
            'orderby' => 'post_date', //日付順
            'paged' => $paged,
        );
        $customPosts = get_posts($args);
        if ($customPosts) : foreach ($customPosts as $post) : setup_postdata($post);
        $terms = get_the_terms($post->ID, 'category');
        foreach ($terms as $term) {
            $term_slug = $term->slug;
        }?>

        <div class="col-md-6 pr-md-5 pl-md-5 top_card">
            <a href="<?php the_permalink(); ?>">
            <div class="top_card_inner mb-4">
                <?php if ( has_post_thumbnail() ): ?>
                    <img src="<?php the_post_thumbnail_url(); ?>" loading="auto" alt="<?php the_title(); ?>のサムネイル">
                <?php else: ?>
                    <img src="<?php echo get_template_directory_uri(); ?>/img/noimg.png" alt="noimg">
                <?php endif; ?>
                <div class="top_card_text">
                    <p class="m-0 post_alts"><i class="far fa-calendar-alt"></i><?php echo get_the_date(); ?><span class="mr-1 ml-1"><i class="far fa-user"></i><?php the_author(); ?></span></p>
                    <p class="mt-1 mb-1 post_title"><?php the_title(); ?></p>
                    <?php
                    $cat = get_the_category();
                    $cat_name = $cat[0]->cat_name;
                    $cat_slug  = $cat[0]->category_nicename;
                    ?>
                    <p class="mt-1 mb-1 top_category <?php echo $cat_slug ?>"><?php echo $cat_name; ?></p>
                </div>
            </div>
            </a>
        </div>

        <?php endforeach; wp_reset_postdata(); ?>
        <?php else: ?>
        <p>表示できる情報はありません。</p>
        <?php endif; wp_reset_postdata(); ?>

    </div>

    <div class="btn-wrap">
    <a href="/archive/" class="lookBtn btn-border-shadow">もっと見る</a>
    </div>

    <! – バナーエリア -->
    <div class="banner_area">
        <?php dynamic_sidebar('sidenavi03'); ?>
    </div>

</main>

<! –  テンプレートパーツ内のサイドバーを呼び出す -->
<?php get_template_part( '/template-parts/sidebar' ); ?>

<! –  footer.phpを呼び出す -->
<?php get_footer(); ?>

フロントページではヘッダーとフッターそしてサイドバーやウィジェット、投稿一覧など全てのコンテンツを呼び出す想定でいます。

header.phpの作成の仕方は以下を見て下さい。

footer.phpの作成の仕方は以下を見て下さい。

ウィジェットの有効化については以下を見て下さい。

記事一覧の取得表示に関しては以下を見て下さい。

その他、HTMLベースでもphpを使ってもどちらでも、好きな感じでレイアウトしてフロントページの完成です。


以上が「ワードプレステーマのTOPページ(front-page.php)の見本」でした。

三浦圭人

最後まで閲覧頂きありがとうございます。
Twitterでは更に細かくWEBリテラシーのネタを発信しています。是非フォローお願い致します。感想/ご意見頂けたら喜びます✨

WordPressphp,Thema,WP

Posted by KT