ここでは、カスタム投稿タイプをプラグインを使わずにfunction.phpにコードを追加して作成する方法についてお話させていただきます。
※補足
function.phpに直接コードを記入して追加したカスタム投稿タイプは、テーマを変更すると表示されなくなってしまいます。当サイトでは、基本的に、別ファイルで作成したphpファイルをfunction.phpにインクルード(追加)させる方法をおすすめしております。
2017.11.27プラグインを使わずにWordPressをカスタマイズする場合、「functionsファイルにこのコードを追加しましょう」みたいなことが書かれていることがよくあります。このように何でもかんでもfunctions.phpにコードを追加しているとコードの量が多くなっ...
カスタム投稿タイプの作成方法
とりあえず、一般的な設定だけに絞り、できるだけシンプルなコードで作成しました。
下記をひな形にしてそのままfunctionファイルにコピペするだけでカスタム投稿タイプの追加ができます。
PHP
add_action( 'init' , 'create_post_type' ); |
function create_post_type() { |
register_post_type( 'example' , |
以下、簡単な説明をさせていただきます。
'label' => 'サンプル投稿',
:カスタム投稿タイプ名
- 「サンプル投稿」の文言を日本語で好きな名前に変更します。日本語でなくても良いですが管理画面の左のメニューに表示されるラベル名なので日本語にした方が分かりやすいと思います。
'public' => true,
:カスタム投稿タイプを公開するかどうか
- この設定はそのままで大丈夫です。
'has_archive' => true,
:アーカイブの有無
- カスタム投稿タイプを「固定ページ」のように使いたい場合は「false」に変更します。ブログのように記事一覧(アーカイブ)ページがほしい場合は「true」のままにします。
'hierarchical' => false,
:階層の有無
- 固定ページを作成するときって「固定ページの属性」のところで「親」ページを選択できるようになっていますよね。これが階層です(ページに親子関係を作れる)。このように固定ページとしてカスタム投稿タイプを使いたい場合は「true」に変更します。ブログの記事のように使う場合はそのままで大丈夫です。
'menu_position' => 5,
:メニューの位置
- ここでは「5」と入れてありますが、数字を変えて好きな位置に移動しましょう。数字が小さい方が上に行きます。
- 「投稿の編集」ページに表示させるメニュー
title
editor
thumbnail
といった項目は、記事を編集するページに表示させるメニューの設定です。ここでどのメニューを表示させたいかを設定します。一般的な項目を入れておきましたが他にも入れたいものがある場合は下記をご参照ください。
title |
タイトル |
editor |
本文のエディタ |
author |
作成者 |
thumbnail |
アイキャッチ画像 |
excerpt |
抜粋 |
trackbacks |
トラックバック送信 |
custom-fields |
カスタムフィールド |
comments |
ディスカッション |
revisions |
リビジョン |
page-attributes |
属性(親・順序) |
- example:カスタム投稿タイプのスラッグ
- 「example」の部分を任意のスラッグに変更しましょう。アーカイブを有効にしたときのURL「http://ドメイン/スラッグ」のスラッグ部分になります。
カスタム投稿タイプは作っただけでは記事は表示されません
初めてカスタム投稿タイプを作成した方がよく陥りがちなのが、作った記事が表示されないというトラブルです。カスタム投稿タイプは作成した後に、必ず「設定」>「パーマリンク設定」へと移動して、何も変えずにそのまま「変更を保存」をします。これをしないと投稿した記事が表示されませんので気をつけてください。
カスタム投稿タイプが作成できたら今度はタクソノミー(カテゴリーのような分類)も作成してみましょう。
2017.11.29ここでは、プラグインを使わずにfunctionファイルにコードを記入してカスタムタクソノミーを増やす方法についてお話します。
タクソノミーとは
タクソノミーを私なりに言葉にするなら「分類軸」とか「分類項目」という表現が良いのではないかと思います。Wor...
2017.10.26WordPressには「固定ページ」と「投稿」という2種類のページ作成方法がありますが、サイトによってはこれら以外にも投稿できる何かがほしい場合があります。
例えば、会社のホームページでスタッフのブログを運用していたとします。でも、同じホームページ上でブ...