HOME技術WordPressWordPressのカスタム投稿タイプとは

WordPressのカスタム投稿タイプとは

WordPressにおいて、デフォルトで用意されている投稿タイプには、細かく分けると5つあります。

  • 投稿(post)
  • 固定ページ(page)
  • 添付ファイル(attachment)
  • リビジョン(revision)

このうち、意識的に使うものが投稿(post)タイプと固定ページ(page)タイプの2つです。
これら5つのほかに、自分で投稿タイプを作成することができます。それをカスタム投稿タイプといいます。

カスタム投稿タイプの役割

カスタム投稿タイプを利用する意義は、投稿タイプと固定ページタイプのほかに、別の投稿タイプをつくることで、その投稿タイプのみを読み込ませて表示させるといった使い方できるところにあります。

記事投稿ページにあらかじめ定型のレイアウトを反映させたい際にも使うことができますが、それならばテンプレートをプラグイン等で導入することもできます。

例えばカスタム投稿タイプ名が「infomation」にして、「最新の情報を載せる投稿ページである」という風に決めたとします。
トップページやサイドメニューで「新着情報」という項目を作り、そこに

<?php if(have_posts()) : query_posts(‘post_type=information’); ?>
<?php while (have_posts()) : the_post(); ?>
<p><?php echo get_post_meta($post->ID, ‘date’ ,true);
<?php endwhile; ?>
<?php else : ?>

<?php endif; ?>

のように書けば、その投稿タイプを呼び出すことができます。

カスタム投稿タイプを作る

カスタム投稿タイプを作るには、function.phpにコードを追加します。

add_action(‘init’, ‘custom_posttype’);
function custom_posttype(){
register_post_type(‘information’,
array(
‘labels’ => array(
‘name’ => ‘infomations’,
‘singlar_name’ => ‘infomation’,
‘menu_name’ => ‘情報’
),
‘public’ => true,
‘query_var’ => true,
‘rewrite’ -> true,
‘capability_type’ => ‘post’,
‘hierarchical’ => false,
‘menu_position’ =>5,
‘supports’ => array(‘title’, ‘editor’)
);
}

3行目「register_post_type(‘information’,」は、カスタム投稿タイプの定義になります。上記でいうところの、「post」「page」「attachment」などと同じ意味合いです。
register_post_type()はWordPressの関数でカスタム投稿タイプを生成します。

4行目のarray内のlabelsの要素

4行目のarrayの中で設定できるlabelsは、様々な表示名称を設定します。labelsには以下の要素を指定できます。

add_new  「新規追加」ボタンの名称。デフォルトは「新規追加」
add_new_item  新規に投稿を追加する画面のタイトル。デフォルトは「新規投稿を追加」
all_items メニューの「すべて~」の名称。デフォルトはnameと同じ値。
edit_item  投稿を編集する画面のタイトル。デフォルトは「投稿の編集」
menu_name メニューに表示する名称。デフォルトはnameと同じ値。
name カスタム投稿タイプの一般名。複数形で設定する。
name_admin_bar  管理バーの「新規追加」のドロップダウンメニューに入る名称。デフォルトはnameと同じ値。
new_item 「新規作成」するボタンの名称。デフォルトは「新規追加」
not_found  投稿一覧ページ表示画面に記事が一件も投稿されていない際に表示するメッセージ。
not_found_in_trash  ゴミ箱が空になっている際に表示されるメッセージ。
parent_item_colon 階層がある投稿タイプの際の「親の~」の名称。デフォルトは「Parent Page」
search_items  投稿一覧ページで記事を検索するボタンの名称。デフォルトは「投稿を検索」「Search Posts」「Search Pages」
singular_name  この投稿タイプの単数形の名称。nameの単数形。
view_item  「~を表示」の名称。デフォルトは「View Post」「View Page」

labels以外の項目

can_export エクスポートの可否を設定。デフォルトはtrue
capabilities 投稿タイプの権限の配列。
‘delete_other_posts’ =>(ほかのユーザが所有するオブジェクトの削除可否の制御)
‘delete_post’=>(メタ権限。投稿の削除可否)
‘delete_posts’=>(オブジェクトの削除可否を制御)
‘delete_private_posts’=>(非公開のオブジェクトの削除可否を制御)
‘delete_published_posts’=>(公開されているオブジェクトの削除可否を制御)
‘edit_post’=>(メタ権限。投稿の編集の可否)
‘edit_posts’=>(編集可否を制御)
‘edit_private_posts’=>(非公開のオブジェクトの編集可否を制御)
‘edit_published_posts’=>(公開されているオブジェクトの編集可否を制御)
‘edit_others_posts’=>(ほかのユーザが所有するオブジェクトの編集可否を制御)
‘publish_posts’=>(オブジェクトの公開可否を制御)
‘read’=>(オブジェクトの閲覧可否を制御)
‘read_post’=>(メタ権限。閲覧の可否)
‘read_private_posts’=>(非公開なオブジェクトの閲覧可否を制御)
capability_type  閲覧、編集、削除の権限を作る際に使う文字列。capabilitiesで使う。デフォルトでpost
description  投稿タイプの説明。デフォルトは空白
exclude_from_search  このタイプの投稿を検索結果から除外する(true)か否(false)か。デフォルトはpublicと反対の値
has_archive  投稿タイプのアーカイブを有効・無効の設定。デフォルトはfalse。アーカイブのスラッグは$post_typeが使われる。
hierarchical  この投稿タイプが階層を持つ(true)か否(false)か。デフォルトはfalse
map_meta_cap  メタ権限処理の使用の有無。デフォルトはnull
menu_icon  アイコンのURL。デフォルトはnullで、アイコンは投稿アイコン。
menu_position  投稿タイプを表示するメニューの位置。show_in_menuをtrueにすると動作する。
5(投稿の下)
10(メディアの下)
15(リンクの下)
20(固定ページの下)
25(コメントの下)
60(最初の区切りの下。コメントの下)
65(プラグインの下)
70(ユーザの下)
75(ツールの下)
80(設定の下)
100(2番目の区切りの下。設定の下)
permalink_epmask  rewriteのendpointビットマスクのデフォルト値
public  投稿タイプをパブリックにする(true)か否(false)か。
publicly_queryable  フロントエンドでpost_typeクエリを実行できるようにする(true)か否(false)か。デフォルトはpublicの値
query_var  この投稿に使用するqeruy_varキーの名称。falseにするとURL形式でクエリ表示(?{query_var}={スラッグ})できなくなる。文字列を指定すると、?文字列={スラッグ}となる。デフォルトはtrue($post_typeの値)
register_meta_box_cb  編集フォームのメタボックスをセットアップする際に呼び出すコールバック関数の指定。デフォルトはなし
rewrite  投稿タイプのパーマリンクのリライト方法を指定する。falseでリライトしない。デフォルトはtrue($post_typeをスラッグにする)
$arg配列で以下を指定できる。
‘ep_mask’=>定数(endpointマスクを割り当てる)
‘feeds’=>真偽値(フィードのパーマリンク構造を作成)
‘pages’=>真偽値(パーマリンク構造をページ送りに対応する)
‘slug’=>文字列(パーマリンク構造のスラッグを設定)
‘with_front’=>真偽値(パーマリンク構造のフロントベースの有無を指定)
show_in_admin_bar  投稿タイプを管理バーから使えるようにする(true)か否(false)か。デフォルトはshow_in_menuの値
show_in_menu  管理画面に投稿タイプを表示する(true)か否(false)か。show_uiがtrueの時に有効。
トップレベルのページを指定するとそのサブメニューに配置する(tools.phpなど)。
show_in_nav_menus  ナビゲーションメニューで投稿タイプを選択できるようにする(true)か否(false)か。デフォルトはpublicの値
show_ui  投稿タイプを管理するUIを生成する(true)か否(false)か。デフォルトはpublicの値。
supports  add_post_type_support()/enを呼び出すエイリアス。配列で指定。falseにするとデフォルトの停止。デフォルトはtitleとeditor。
‘author’(著者)
‘comments’(コメント、編集画面にコメント数のバルーンを表示)
‘custom-fields’(カスタムフィールド)
‘editor’(内容の編集)
‘except’(概要)
‘page-attributes’(メニューの順序)
‘post-formats’(投稿フォーマットの追加)
‘revisions’(リビジョンの保存)
‘title’(タイトル)
‘trackbacks’(トラックバック送信)
‘thumbnail’(サムネイル画像)
taxonomies  categoryやpost_tagなどのタクソノミーの配列を設定。register_taxonomy()でタクソノミーを登録する必要がある。デフォルトはタクソノミーなし
_builtin  投稿タイプがネイティブまたはビルトインである場合はtrue、そうでない場合はfalse。デフォルトではfalse。カスタム投稿タイプの場合は記載しない。
_edit_link エントリを編集するリンク。’post.php?=%d’など。カスタム投稿タイプの場合は記載しない。

関連記事

WordPressのテーマを自作する(WordPressに認識させる)

WordPressには予め提供されているテーマがあります。このテーマを利用して子テーマをつくることで簡単にテーマをつくることができますが、今回は1から自分でつくる方法について記します。 自作テーマの保…続きを読む

WordPressのTinyMCEを利用している際にstyleタグなどが消されてしまう

WordPressでより便利に記事を書くためのエディタとして、TinyMCEプラグインがあります。このプラグインは、ビジュアルとテキストで表示を入れ替えて確認したり、コードを直接書き込んだりすることが…続きを読む

WordPressで記事が属するカテゴリをすべて表示する

アーカイブページなどで、記事一覧を表示している時に、その記事が属するカテゴリをすべて表示する方法です。 コード <ul> <?php while (have_posts()) : t…続きを読む

WordPressでログイン/ログアウトを表示する

WordPressを使ったウェブサイトの画面内にログイン/ログアウト画面を入れる方法です。 ログアウトの設定 先にログアウトの設定をする理由は、コードを書くときに、「ログインしていればログアウト表示を…続きを読む

WordPressをプラグインを使わずバックアップする

WordPressの投稿した記事やアップロードしたファイル、テーマファイルなどをバックアップする方法です。今回はバックアップ用のプラグインを使わず手動で行います。 バックアップする 記事のバックアップ…続きを読む

WordPressにファイルをアップロードできないときの対処法

WordPressを使っていて、メディアを新規追加しようとすると、「アップロードしたファイルをwp-content/uploads/***に移動できませんでした」と表示されて、アップロードできませんで…続きを読む

WordPressのタクソノミーとは

WordPressにおけるタクソノミーとは、分類のことです。標準で用意されているタクソノミーには「カテゴリ」「タグ」があります。 カテゴリとタグ カテゴリとは、投稿記事が属するテーマを設定するもので、…続きを読む

WordPressでページがあるのにエラー表示される

WordPressでページが存在しているにもかかわらず、そのページへのリンクをクリックすると、「存在しない」と言われてしまう場合には、「設定」→「パーマリンク設定」より「基本」を選んで「変更を保存」を…続きを読む

WordPressで突然漢字変換ができなくなる

WordPress 4.4.2を使っていて、記事を書いているときに、急にひらがなしか入力できなくなり、漢字変換してくれなくなりました。 wp-multibyte-patchが影響している可能性があり、…続きを読む

WordPressの投稿タイプとは

WordPressでは、記事を投稿する際に、「投稿」タイプ、「固定」タイプ、「カスタム」タイプの3つのうちから選択します。 このタイプのことを「投稿タイプ」と呼んでいます。 投稿タイプは乱暴に言うと、…続きを読む