Post Type
Overview
The Post Type module covers custom post type registration, label and capability builders, list-table integrations, post object wrapping, and insert/update helpers.
Types in this module
Lipe\Lib\Post_Type\CapabilitiesLipe\Lib\Post_Type\LabelsLipe\Lib\Post_Type\Post_List_ColumnLipe\Lib\Post_Type\Post_List_FilterLipe\Lib\Post_Type\Post_Object_Trait(trait)Lipe\Lib\Post_Type\Post_TypeLipe\Lib\Post_Type\Register_Post_StatusLipe\Lib\Post_Type\Register_Post_TypeLipe\Lib\Post_Type\Wp_Insert_PostLipe\Lib\Post_Type\Post_List_Column\Filter(interface)Lipe\Lib\Post_Type\Post_List_Column\ListColumn(interface)
Post_Type
Primary fluent wrapper for registering a custom post type and related admin behavior.
Key public methods
final public function __construct(string $post_type)public function featured_image_labels(string $label): voidpublic function labels(string $singular = '', string $plural = ''): Labelspublic function gutenberg_template(array $template, bool|string $template_lock = false): staticpublic function capabilities(): Capabilitiespublic function archive_label(string $label): voidpublic function add_support(string|array $feature): voidpublic function remove_support(string|array $feature): voidpublic function remove_column(string $column): voidpublic function exclude_from_sitemaps(): voidpublic function disable_single(): voidpublic function gutenberg_compatible(bool $compatible): voidpublic function rest_controllers(string $base = \WP_REST_Posts_Controller::class, string $autosave = \WP_REST_Autosaves_Controller::class, string $revisions = \WP_REST_Revisions_Controller::class, bool $late_registration = false): voidpublic function show_in_rest(bool $show = true, ?string $base = null, string $space = 'wp/v2'): voidpublic function show_in_menu(Dashicons|string $icon = '', ?string $parent_menu = null, int $position = 5): voidpublic function allow_auto_admin_caps(bool $allowed): voidpublic function can_export(bool $can_export): voidpublic function capability_type(array|string $capability_type): voidpublic function delete_with_user(bool $delete_with_user): voidpublic function description(string $description): voidpublic function exclude_from_search(bool $is_excluded): voidpublic function has_archive(bool|string $has_archive): voidpublic function hierarchical(bool $is_hierarchical): voidpublic function embeddable(bool $is_embeddable): voidpublic function map_meta_cap(bool $use_mapping): voidpublic function public(bool $is_public): voidpublic function publicly_queryable(bool $is_queryable): voidpublic function query_var(bool|string $query_var): voidpublic function register_meta_box_cb(callable $register_cb): voidpublic function rewrite(bool|array $rewrite): voidpublic function show_in_admin_bar(bool $show): voidpublic function show_in_nav_menus(bool $show): voidpublic function show_ui(bool $show_ui): voidpublic function taxonomies(array $taxonomies): voidpublic static function get_post_type(string $post_type): ?static
Example
<?php
use Lipe\Lib\Post_Type\Post_Type;
$books = new Post_Type('book');
$books->labels('Book', 'Books');
$books->show_in_rest(true, 'books');
$books->add_support(['title', 'editor', 'thumbnail']);
Labels
Fluent label builder used by Post_Type. Every setter returns static and stores its value under the matching label key; get_label()/get_labels() read the accumulated values back.
Key public methods
public function name(string $label): staticpublic function singular_name(string $label): staticpublic function add_new(string $label): staticpublic function add_new_item(string $label): staticpublic function archive_label(string $label): staticpublic function edit_item(string $label): staticpublic function new_item(string $label): staticpublic function view_item(string $label): staticpublic function view_items(string $label): staticpublic function search_items(string $label): staticpublic function not_found(string $label): staticpublic function not_found_in_trash(string $label): staticpublic function parent_item_colon(string $label): staticpublic function all_items(string $label): staticpublic function archives(string $label): staticpublic function attributes(string $label): staticpublic function insert_into_item(string $label): staticpublic function uploaded_to_this_item(string $label): staticpublic function featured_image(string $label): staticpublic function set_featured_image(string $label): staticpublic function remove_featured_image(string $label): staticpublic function use_featured_image(string $label): staticpublic function menu_name(string $label): staticpublic function filter_items_list(string $label): staticpublic function filter_by_date(string $label): staticpublic function items_list_navigation(string $label): staticpublic function items_list(string $label): staticpublic function item_published(string $label): staticpublic function item_published_privately(string $label): staticpublic function item_reverted_to_draft(string $label): staticpublic function item_scheduled(string $label): staticpublic function item_updated(string $label): staticpublic function item_link(string $label): staticpublic function item_link_description(string $label): staticpublic function get_label(string $label_key): ?stringpublic function get_labels(): array
Capabilities
Fluent capability builder used by Post_Type. Setting any capability also switches the post type to map_meta_cap(true).
Key public methods
public function __construct(protected Post_Type $post_type)public function edit_post(string $capability): staticpublic function read_post(string $capability): staticpublic function delete_post(string $capability): staticpublic function edit_posts(string $capability): staticpublic function edit_others_posts(string $capability): staticpublic function publish_posts(string $capability): staticpublic function read_private_posts(string $capability): staticpublic function read(string $capability): staticpublic function delete_posts(string $capability): staticpublic function delete_private_posts(string $capability): staticpublic function delete_published_posts(string $capability): staticpublic function delete_others_posts(string $capability): staticpublic function edit_private_posts(string $capability): staticpublic function edit_published_posts(string $capability): staticpublic function create_posts(string $capability): staticpublic function get_cap(string $capability_name): ?stringpublic function get_capabilities(): array
Post_Object_Trait
Shared base for classes that wrap a single WP_Post. Combines Factory (for factorize()-based instance caching) and Mutator_Trait (for get_meta()/update_meta()/delete_meta()) to give post-wrapping classes a consistent construction and meta API.
Key public methods
final public function __construct(int|\WP_Post|null $post = null)public function get_object(): ?\WP_Postpublic function get_id(): intpublic function get_meta_type(): MetaTypepublic function exists(): boolpublic static function factory(int|\WP_Post|null $post = null): static
Post_List_Column
Registers a custom admin column for a list of post types. A basic column implements ListColumn; a filterable column also implements Post_List_Column\Filter, in which case a Post_List_Filter is created automatically.
Key public methods
public function __construct(protected ListColumn $column)public function maybe_render_column(string $column, int $post_id): voidpublic function add_column(array $columns): array
Post_List_Filter
Registers a post list filter drop-down independently of Post_List_Column, for cases where the column itself is already handled elsewhere (e.g. by CMB2).
Key public methods
public function __construct(protected Filter $filter_column, protected string $column_slug)public function render_filter(string $post_type): voidpublic function maybe_filter_query(\WP_Query $query): void
Post_List_Column\Filter
Contract enabling a post list filter drop-down for a column.
Methods
public function get_post_types(): arraypublic function get_show_all_label(): stringpublic function get_options(): arraypublic function filter_query(string $value, \WP_Query $query): void
Post_List_Column\ListColumn
Contract for a basic custom post list column.
Methods
public function get_post_types(): arraypublic function get_column_position(): intpublic function get_column_label(): stringpublic function render(int $post_id): void
Supporting types
Register_Post_Status,Register_Post_Type, andWp_Insert_Postare fluent arg objects for the corresponding WordPress core functions.