カスタム投稿の作成と表示
2020-05-14
ワードプレスの制作において、カスタム投稿タイプという言葉をよく見ると思いますが、そのカスタム投稿の作成方法と表示について、まとめていきます。
そもそもカスタム投稿とは、通常の投稿とは別に、もう一つ投稿画面を作っておきたい。という時に必要になります。
制作時の仕様や製作者にもよりますが、とあるコーポレートサイトを制作するときなど、新着情報は通常の投稿、会社概要などは固定ページ、実績例はカスタム投稿で。という風に、投稿によってサイトの更新を管理しやすくする事ができ、クライアントでも更新しやすくさせるというメリットがあります。もちろん、カテゴリでそういった分類でもいいという場合もあるので、一概には言えませんが。
新しい投稿タイプの追加
まずは、function.phpに下記の内容を追記して、管理画面にカスタム投稿タイプを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'news', // 投稿タイプ名の定義 array( 'labels' => array( 'name' => __( '新着情報' ), // 表示する投稿タイプ名 'singular_name' => __( '新着情報' ) ), 'public' => true, 'menu_position' =>5, 'has_archive' => false, 'supports' => array('title','editor','excerpt','thumbnail','author') ) ); } |
register_post_type()の引数として、少し解説をしておきます。
・public ・・・ 投稿タイプをパブリックにするかどうか。true の場合、管理画面とフロントエンド(ユーザー)の両方から利用可能。
・menu_position ・・・ この投稿タイプが表示されるメニューの位置。詳細は下記に。
・has_archive ・・・ この投稿タイプのアーカイブを有効にする。
・supports ・・・・・・・・ 投稿画面で表示する項目。詳細は下記に。
menu_positionの補足
menu_positionの値を下記に指定する事で、それぞれ表示する場所を指定する事ができます。
数値 | 管理画面上の表示箇所 |
---|---|
5 | 投稿の下 |
10 | メディアの下 |
15 | リンクの下 |
20 | 固定ページの下 |
25 | コメントの下 |
60 | 外観の下 |
65 | プラグインの下 |
70 | ユーザーの下 |
75 | ツールの下 |
80 | 設定の下 |
100 | 最下部に独立させる |
supportsの補足
‘supports’ => array()の箇所で、配列にそれぞれ指定する事で、投稿画面に表示させる事ができます。
title | タイトル |
---|---|
editor | 内容の編集 |
author | 作成者 |
thumbnail | アイキャッチ画像。 現在のテーマが post-thumbnails をサポートしていること |
excerpt | 抜粋 |
custom-fields | カスタムフィールド |
revisions | リビジョンを保存する |
という感じで、必要最低限の内容ですが、他にもトラックバックの表示や、コメントといった内容の表示もあります。
関数レファレンス/register_post_type()の解説はこちら
ページの構成について
カスタム投稿の一覧ページについては、
1. archive-{post_type}.php(優先度の最も高いテンプレート)
2. archive.php(汎用アーカイブテンプレート)
3. index.php(全てのページの汎用テンプレート)
の順でテンプレートが選択されていきます。
また、同様に記事ページも
1. single-{post_type}.php
2. single.php
3. singular.php
4. index.php
の順でテンプレートが選択されていきます。
{post_type}はカスタム投稿タイプ名で、上記の[function.php]への記述でいうと‘news’にあたります。
その例でいうと、[archive-news.php]ということになります。
また、このファイルは[archive.php]をコピーして、ファイル名を代えるだけで、その後、デザインに合わせて編集していけば、大丈夫です。
ただし、上記の[function.php]の記述部分で、has_archive をtrueにしておかないと、一覧ページは表示されませんので、ご注意ください。
カスタム投稿を作成し、記事の投稿をしたけど、一覧ページが表示されない場合は、
・この部分がfalseのままになっている場合か、
・『管理画面』 > 『設定』 > 『パーマリンク』のページで一度保存をしてみると表示される場合
などがありますので、焦らず確認してみてくださいね。