Learning site for website creation

34:固定ページでカスタムページテンプレートを選択できるようにする

  • 投稿日:2018年11月07日

固定ページ編集画面でカスタムページテンプレートを選択できるようにします。

固定ページ用のカスタムページテンプレートを作成します。

ファイル名は命名規則に則っていれば好きにつけて構いません。今回は「custom-page1.php」と「custom-page2.php」を作成します。

ファイルの先頭にカスタムページテンプレート用のPHPコメントを入れます。

<?php
/*
* Template Name: 管理画面表示名
* Template Post Type: 投稿タイプの指定(省略時:page)
* Description: 説明文
*/
?>

custom-page1.php

<?php
/*
 * Template Name: 固定カスタム1
 * Description: サブループあり固定ページテンプレート
 */
?>
<?php get_header(); ?>

  <div class="content">
    <div class="main">

      <div class="main-loop">
        <div class="inner">
<?php /***** メインループ開始 *****/ ?>
<?php if (have_posts()) :?>
<?php while (have_posts()) : the_post(); ?>
<?php $id = get_the_ID(); ?>
<?php // テンプレートパーツ読み込み:一覧 ?>
<?php get_template_part('content','page'); ?>
<?php endwhile; ?>
<?php else: ?>
<?php // テンプレートパーツ読み込み:記事なし ?>
<?php get_template_part('content','none'); ?>
<?php endif; ?>
<?php /***** メインループ終了 *****/ ?>
        </div><!-- /.inner -->
      </div><!-- /.main-loop -->


<?php /***** サブループ条件 *****/ ?>
<?php // その他記事 ?>
<?php
$args = array(
  'post_type' => 'post',
  'posts_per_page' => 5,
  'category_name' => '未分類',
  'ignore_sticky_posts' => 1,
  'orderby' => 'id',
  'order' => 'DESC'
);
echo getSubloop($args, 'その他最新記事');
?>
<?php /***** サブループ終了 *****/ ?>


    </div><!-- /.main -->
  </div><!-- /.content -->

<?php
get_footer();

custom-page2.php

<?php
/*
 * Template Name: 固定カスタム2
 * Description: サイドバーあり固定ページテンプレート
 */
?>
<?php get_header(); ?>

  <div class="content">
    <div class="main">

      <div class="main-loop">
        <div class="inner">
<?php /***** メインループ開始 *****/ ?>
<?php if (have_posts()) :?>
<?php while (have_posts()) : the_post(); ?>
<?php $id = get_the_ID(); ?>
<?php // テンプレートパーツ読み込み:一覧 ?>
<?php get_template_part('content','page'); ?>
<?php endwhile; ?>
<?php else: ?>
<?php // テンプレートパーツ読み込み:記事なし ?>
<?php get_template_part('content','none'); ?>
<?php endif; ?>
<?php /***** メインループ終了 *****/ ?>

        </div><!-- /.inner -->
      </div><!-- /.main-loop -->

    </div><!-- /.main -->
    <?php get_sidebar(); ?>
  </div><!-- /.content -->

<?php
get_footer();

このページで出てくる関数

WordPress関数は「公式サイトのドキュメント」で確認しましょう。

WordPress関数

get_header()

have_posts()

the_post()

get_the_ID()

get_template_part()

get_sidebar()

get_footer()

オリジナル関数

getSubloop()

 

欠席者対応:wireframe13