WordPressのカスタム投稿タイプを簡単に作成するためのライブラリです。
composer require hamworks/wp-post-typeuse HAMWORKS\WP\Post_Type\Builder;
$builder = new Builder( 'book', 'Book' );
$builder->create();$builder = new Builder( 'book', 'Book' );
$builder->set_options(
[
'public' => true,
'description' => '書籍の投稿タイプ',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 20,
'supports' => [ 'title', 'editor', 'thumbnail', 'excerpt' ],
'rewrite' => [
'slug' => 'books',
'with_front' => false,
],
]
);
$builder->create();$builder = new Builder( 'book', 'Book' );
$builder->set_labels([
'name' => 'Books',
'singular_name' => 'Book',
'add_new' => 'Add New Book',
'add_new_item' => 'Add New Book',
'edit_item' => 'Edit Book',
'new_item' => 'New Book',
'view_item' => 'View Book',
'search_items' => 'Search Books',
]);
$builder->create();このライブラリでは以下のデフォルト設定が適用されます:
public: trueshow_ui: trueshow_in_rest: true(REST API対応)show_in_admin_bar: trueshow_in_nav_menus: truehas_archive: truehierarchical: false
- title(タイトル)
- author(投稿者)
- editor(エディター)
- excerpt(抜粋)
- revisions(リビジョン)
- thumbnail(アイキャッチ画像)
- custom-fields(カスタムフィールド)
- WPGraphQL使用時に自動でGraphQLフィールド名を設定
- 単数形と複数形のslugが自動生成される
- Doctrine Inflectorを使用してslugを自動生成
- 複数形のslugが自動設定される(例:
book→books)
hierarchical を true に設定すると、自動的に page-attributes サポートが追加され、管理画面でのデフォルトソート順が menu_order になります。
$event_builder = new Builder( 'event', 'イベント' );
$event_builder->set_options([
'public' => true,
'has_archive' => true,
'menu_position' => 25,
'supports' => [ 'title', 'editor', 'thumbnail', 'custom-fields' ],
'rewrite' => [ 'slug' => 'events' ],
]);
$event_builder->create();$page_builder = new Builder( 'book', 'Book' );
$page_builder->set_options([
'hierarchical' => true, // page-attributesが自動追加される
'has_archive' => false,
'supports' => [ 'title', 'editor', 'thumbnail' ],
]);
$page_builder->create();$name: 投稿タイプのスラッグ(単数形で指定)$label: 表示名
投稿タイプのオプションを設定します。WordPressの register_post_type() と同じ引数を使用できます。
投稿タイプのラベルを設定します。
投稿タイプを登録し、必要なフックを追加します。
登録された投稿タイプオブジェクトを返します。