WEBTODESIGN

functions.phpでカスタム投稿タイプを追加する【WordPress】

functions.phpでサクッとカスタム投稿タイプを追加できます。

register_post_type()

functions.phpに例えば以下のように記述します。

///// カスタム投稿タイプの追加 /////
function original_post_type() {
    register_post_type( 'original_name', [
        'label' => 'Original Name',
        'public' => true
    ]);
}
add_action( 'init', 'original_post_type' );

カスタム投稿タイプの登録にはregister_post_type()関数を使用します。

第一引数にカスタム投稿タイプの登録名を、第二引数にオプションを配列で記述していきます。

登録名は20文字以下で、小文字の英数字とダッシュとアンダーバーのみ含めることが可能です。これがそのままデフォルトのスラッグになります。

第一引数のみ必須で、第二引数はオプションです。

よく使うオプション

以下はよく使う第二引数のオプションです。

'label' => ''

メニューでの表示名です。日本語ももちろんOK。

'public' => true

この投稿タイプを管理画面やサイト上に表示させるかどうか。初期値はfalseなので、大体の場合はtrueにする必要があります。

'exclude_from_search' => true

この投稿タイプのサイト上の検索結果から除外するかどうか。初期値はpublicの反対値です。つまりpublictrueならこの初期値はfalseです。

'show_in_rest' => true

ブロックエディタを使用するかどうか。初期値はfalseです。

'menu_position' => 5

メニューでの位置の指定です。5は通常の投稿のひとつ下になります。

'menu_icon' => ''

管理画面サイドバーのアイコンを変えることができます。

アイコンはDashicons | WordPress Developer Resourcesから探せます。例えばメニューのアイコンなら'menu_icon' => 'dashicons-menu'とすればOKです。

ソース

その他のオプションや関数の詳細は以下の公式ドキュメントをご参照ください。

register_post_type() | Function | WordPress Developer Resources