カスタム投稿タイプを追加する場合、プラグインを使用すると簡単に追加できます。
ですが、プラグインが多いとサイトが重くなったり、プラグインのアップデートの手間やアップデートによる不具合などの問題があります。
出来ればプラグイン無しで追加した方が良いかと思いますので、今回はプラグイン無しでfunctions.phpに記述してカスタム投稿タイプを追加する方法を解説していきます。
カスタム投稿タイプとは
カスタム投稿タイプとはデフォルトで用意されている「投稿」や「固定ページ」とは別に追加する記事の投稿機能の事を言います。
よくある使用例としては「お知らせ」や「実績」、「ブログ」や「FAQ」などがあるかと思います。
カスタム投稿タイプを使用する事で、コンテンツに応じた投稿機能を作成する事ができます。
カスタム投稿タイプの作成の方法
プラグイン無しでカスタム投稿タイプを追加するには、register_post_type関数を使用し、functions.phpにコードを記述します。register_post_type関数の使用方法は以下となります。
register_post_type($post_type, $args);
各引数については以下となります。
$post_type
作成したいカスタム投稿タイプのスラッグ名を指定します。
最大20文字までの英数字、大文字・空白は使用不可。
※「post」、「page」、「attachment」、「revision」などデフォルトで使用されている文字列は使用不可。
$args
カスタム投稿タイプの設定をパラメータで指定します。
パラメータについては下記で解説致します。
よく使用するカスタム投稿タイプの作成例
例として、よく使用するかと思われるカスタム投稿タイプの作成例を紹介致します。
function custom_post_type(){
register_post_type(
'news',
array(
'public' => true,
'label' => 'お知らせ',
'has_archive' => true,
'menu_position' => 5,
'show_in_rest' => true,
'supports' => array('title','editor','thumbnail')
)
);
}
add_action('init','custom_post_type');
?>
上記例では、お知らせ(スラッグ名:news)というカスタム投稿タイプを追加しています。
register_post_type関数の第2引数のパラメータは最低限これだけあれば問題はありませんが、詳しい解説は次項をご覧ください。
各パラメータについて
前項の作成例で使用しているregister_post_type関数第2引数のパラメータは以下のようになります。
キー | 初期値 | 内容 |
---|---|---|
public | カスタム投稿タイプを有効(公開)にするかどうか falseだと無効(非公開) |
false |
label | 管理画面等で表示されるカスタム投稿タイプの名称 | hierarchicalがtrueだと「投稿」、falseだと「固定ページ」 |
has_archive | カスタム投稿のアーカイブページを作成するかどうか trueだと作成、スラッグ名は第1引数の$post_type |
false |
menu_position | 管理画面のメニューでの表示位置(5は投稿の下) | null(コメントの下) |
show_in_rest | ブロックエディタを有効にする(trueの場合はRESTAPIに含める) | false |
supports | カスタム投稿タイプで使用する項目を追加 title:タイトル editor:エディタ thumbnail:アイキャッチ画像 revisions:リビジョン excerpt:抜粋 custom-fields:カスタムフィールド 他 |
array(‘title’, ‘editor’) |
使用できるパラメータは上記のみではありませんので、詳しくは公式ドキュメントをご確認ください。
さいごに
いかがでしたでしょうか。
今回は、カスタム投稿タイプをプラグイン無しでfunctions.phpに記述して追加する方法を解説しました。
カスタム投稿タイプは必ずと言っていいほど使用する機会がありますので、自在に使用できるようにしておいてくだい。