カスタム投稿とは?
ワードプレス規定の「投稿」や「固定ページ」とは別に、投稿タイプをカスタマイズし、作成する事が出来ます。
通常の投稿とは別の目的になる記事を分類する事ができ、自由に投稿タイプを使えるので、例えば、「商品紹介」、「会員プロフィール」、「更新情報」などブログ運営に必要だけど、通常の投稿記事とは別のものなどを区別するのに便利です。
実装するには?
2通りの方法があります。
- プラグインを利用する
- 直接PHPに追記する
カスタム投稿タイプを1つか2つ使うくらいなら、プラグインなしでいいと思いますが、大量に使いたい場合は、プラグインの利用をお勧めします。
ちなみにプラグインで有名なのは「Custom Post Type UI」。名称で検索すれば使い方などもたくさん見つかります。
カスタム投稿 専用のプラグインの他、多機能拡張プラグイン「VK All in One Expansion Unit」にもカスタム投稿機能があります。
この方法は以下をご覧ください。
function.phpの編集
※子テーマにfunction.phpがない場合や、子テーマ自体がない場合は、親テーマでも行えますが、親テーマを編集すると、アップデートなどでカスタマイズしたものは消えてしまいますので注意。
※バックアップをとるなど、必要な対応をしてから自己責任でお願いします。
function.phpを触らずにPHPコードを処理単位で記述・管理できるプラグインもあります。
詳しくは以下をご覧ください。
「新着情報」として作成する例
// カスタム投稿タイプ追加
function create_post_type_news() {
$Supports = [
'title',
'editor',
'thumbnail',
];
register_post_type( 'my_news',
array(
'label' => '新着記事',
'labels' => array(
'all_items' => '新着記事一覧'
),
'public' => true,
'has_archive' => true,
'menu_position' => 6,
'supports' => $Supports
)
);
}
add_action( 'init', 'create_post_type_news' );
上記の例をコピーし、必要な部分(lavel、all_itemsの内容)などを書き換えて下さい。
そのままコピペでも実装できますが、内容の詳細は以下をご覧ください。
使用パラメータ・引数解説
使用しているものについて簡単に説明しますが、更に詳細は以下をご覧ください。
register_post_typeパラメータ
<?php register_post_type( $post_type, $args ); ?>
$post_type
(文字列) (必須) 投稿タイプ(最大 20 文字、大文字や空白は禁止)。
初期値: なし
投稿タイプは、ワードプレスが使用するものは使えないので「my_post」など独自の名称にします。
今回の例では「my_news」の部分
予約済みの投稿タイプ(WordPress が使用)
- post – 投稿
- page – 固定ページ
- attachment – 添付ファイル
- revision – リビジョン
- nav_menu_item – ナビゲーションメニュー
以下の投稿タイプは他の WordPress 関数の動作を妨害するので使用不可。
- action
- order
- theme
$args
(配列) (オプション) 引数の配列。
初期値: なし
$supports
(文字列) (必須) チェックする機能。
初期値: なし
今回のサンプルで使用しているのはピンク文字のもの。それ以外も必要に応じて設定可能です。
- ‘title‘ (タイトル)
- ‘editor‘ (内容の編集)
- ‘author’ (作成者)
- ‘thumbnail‘ (アイキャッチ画像)(現在のテーマが 投稿サムネイル をサポートしていること)
- ‘excerpt’ (抜粋)
- ‘trackbacks’ (トラックバック送信)
- ‘custom-fields’ (カスタムフィールド)
- ‘comments’ (コメントの他、編集画面にコメント数のバルーンを表示する)
- ‘revisions’ (リビジョンを保存する)
- ‘page-attributes’ (メニューの順序)(投稿タイプの hierarchical が true であること)
- ‘post-formats’ (投稿のフォーマットを追加)
public
(真偽値) (オプション) 投稿タイプをパブリックにするかどうか。
true の場合、管理画面とフロントエンド(ユーザー)の両方から利用可能。
初期値: false
‘false’ – 投稿タイプをパブリックにしない。他のところで明示的に用意しない限り、管理画面とフロントエンドのどちらからも使えない。
‘true’ – 投稿タイプをパブリックにする。フロントエンドと管理画面の両方から使えるように。
has_archive
(真偽値|文字列) (オプション) この投稿タイプのアーカイブを有効にする。
デフォルトでは、アーカイブのスラッグとして $post_type が使われる。
初期値: false
menu_position
左側のメニューに表示される位置の指定。
ワードプレスの規定値は以下の通りなので、作成するカスタム投稿に”6”を指定すると、投稿の下に入ります。
- 投稿 :$menu[5]
- メディア :$menu[10]
- 固定ページ :$menu[20]
- リンク $menu[15]
複数のカスタム投稿タイプを作成
上記と同様に追記します。
「新着情報」と「テスト」を作った例
メニューの7番目の位置に「テスト」で作ってみます。
function create_post_type_test() {
$Supports = [
'title',
'editor',
'thumbnail',
];
register_post_type( 'my_test',
array(
'label' => 'テスト',
'labels' => array(
'all_items' => 'テスト一覧'
),
'public' => true,
'has_archive' => true,
'menu_position' => 7,
'supports' => $Supports
)
);
}
add_action( 'init', 'create_post_type_test' );
記事作成
作成したカスタム投稿タイプの記事を書くには、メニューから通常の投稿のように編集します。
作成した記事を表示する
記事の表示方法については以下をご覧ください。
コメント