超絶初心者(自分)のためのWordPressのテーマ作成-5

プログラミング備忘録

今回はカスタムページテンプレートの作り方についてです。

現在のままだとどのページに行っても構造がindex.phpで書かれたのと同じ構造になっています。

どういうことかというと、

<?php get_header(); ?>

  <?php
  if(have_posts()):
    while(have_posts()): the_post(); ?>

    <h3><?php the_title() ?></h3>
    <!--  the_time()で記事の投稿された時間を表示し、the_category()で記事のカテゴリーを表示 -->
    <small>Posted on: <?php the_time(); ?><?php the_category(); ?> </small>
    <p><?php the_content() ?></p>

    <hr>

    <?php endwhile;
  endif;
  ?>
<?php get_footer(); ?>

ここに書かれたものが全ての固定ページに反映されいるということです。

もし別の固定ページには別の構造例えば、記事の投稿された時間を表示しないなどしたい場合困っていしまいます。

なぜならindex.phpを変更した場合、時間を表示したいページからも全てなくなってしまいます。

それではどうすればいいのか?

とても簡単で、page-PAGE_ID.phpというようにしてそのページ専用のphpファイルを作ってあげればいいのです。

*PAGE_IDのところは変更を反映したいページのIDを入れる。

もしページのIDが6の場合、ファイルはpage-6.phpのようになる。

もう一つの方法は新しいphpファイルを作り、以下を記述する方法です。

/*
Template Name: No Content
*/

完成例:

<?php get_header();

/*
Template Name: No Content
*/

 ?>

  <?php
  if(have_posts()):
    while(have_posts()): the_post(); ?>

    <h3><?php the_title() ?></h3>
    <!--  the_time()で記事の投稿された時間を表示し、the_category()で記事のカテゴリーを表示 -->
    <small>Posted on: <?php the_time(); ?><?php the_category(); ?> </small>
    <p><?php the_content() ?></p>

    <hr>

    <?php endwhile;
  endif;
  ?>
<?php get_footer(); ?>

*ファイルの中の構造は自分が適応したいものに自由に変える

こうすることにより、ダッシュボードの固定ページから、どのテンプレートを適応させるかを選択できるようになります。

今回はここまで。

次はadd_theme_support()を使って、wordpressが提供してくれている機能をテーマに追加していきます。

Posted by cabc-1234