今回はWordPress(ワードプレス)のカスタム投稿機能をプラグイン無しで追加する方法を紹介します。中でもカスタム投稿をグーテンベルクにしたいとの要望が多いので、その点に関しては詳しく説明します。
WordPressのテーマを使用していて、投稿機能がクラシックエディターでやり辛いと感じる方は是非試してみて下さい。
カスタム投稿の設定の仕方(プラグイン無し)
カスタム投稿の設定の仕方は非常に簡単です。
以下のコードをfunction.phpに記述して下さい。すると「ニュース」の投稿機能が追加されます。
//投稿タイプの作成(ニュース)
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type(
'news',
array(
'labels' => array(
'name' => __( 'News' ),
'singular_name' => __( 'News' )
),
'supports' => array(
'title',
'editor',
'author',
'thumbnail',
'excerpt',
'custom-fields',
'comments'
),
'public' => true,
'has_archive' => true,
'show_in_rest' => true,
)
);
}

意味は、「register_post_type」関数を使って「news」という名前の投稿タイプを作ります。といった事です。
array(〜)の中身には様々なラベルとサポートがを入れていきます。
例えば、上記の場合は、ラベルのnameは「News」です。それを入れたオブジェクトの名前も「News」にしています。これをindex.phpなどで呼び出せばTOPページに「ニュース」が表示されます。
supportsの中身には、グーテンベルクの投稿画面右側にある設定項目の追加です。例えば、「thumbnail」ならサムネイルの設定項目が増えます。(supportsを使用する場合は「title」「editor」は必須)
その他のラベルなどは、以下のドキュメントに全て載っています。基本を理解したら見てみて下さい。
https://wpdocs.osdn.jp/関数リファレンス/register_post_type
カスタム投稿をグーテンベルクにする方法

カスタム投稿をグーテンベルクにする方法は、先程コードの「‘show_in_rest’ => true,」の設定で切り替えます。ここが「true」になっていればグーテンベルクになります。反対に「false」になっているとクラシックエディターになります。
どこかでダウンロードした、既存のテーマのカスタム投稿機能をグーテンベルクにしたい場合は、「register_post_type」と検索をかければ何処かに上記と同じような記述があると思います。そこを見つけたら「‘show_in_rest’ => ●●,」の設定を変更、もしくは追加すればOKです。
//投稿タイプの作成(ニュース)
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type(
///////////////省略///////////////
'public' => true,
'has_archive' => true,
'show_in_rest' => true, // ← グーテンベルクの有無
)
);
}
その他の設定項目一覧
function create_my_post_types() {
//custom というカスタム投稿タイプを登録
register_post_type(
'custom',//投稿タイプ名(識別子:半角英数字の小文字)
array(
'label' => 'カスタム', //カスタム投稿タイプの名前(管理画面のメニューに表示される)
'labels' => array( //管理画面に表示されるラベルの文字を指定
'add_new' => '新規カスタム追加',
'edit_item' => 'カスタムの編集',
'view_item' => 'カスタムを表示',
'search_items' => 'カスタムを検索',
'not_found' => 'カスタムは見つかりませんでした。',
'not_found_in_trash' => 'ゴミ箱にカスタムはありませんでした。'
),
'public' => true, // 管理画面及びサイト上に公開
'description' => 'カスタム投稿タイプ「カスタム」の説明文です。', //説明文
'hierarchicla' => false, //コンテンツを階層構造にするかどうか
'has_archive' => true, //trueにすると投稿した記事の一覧ページを作成することができる
'show_in_rest' => true, //Gutenberg を有効化
'supports' => array( //記事編集画面に表示する項目を配列で指定することができる
'title', //タイトル
'editor', //本文の編集機能
'thumbnail', //アイキャッチ画像
'excerpt', //抜粋
'custom-fields', //カスタムフィールド
'revisions' //リビジョンを保存
),
'menu_position' => 5, //「投稿」の下に追加
//使用するタクソノミーを指定(カテゴリー/category やタグ/post_tag も追加可能)
'taxonomies' => array('rental_cat', 'rental_tag', 'category', 'post_tag')
)
);
以上が「WPのカスタム投稿の設定の仕方(グーテンベルグにする方法)」でした。
この依頼は割と最近多めです。簡単で喜ばれるので覚えていて全く損はないでしょう。