The registered_post_type WordPress action fires after a post type is registered.
Usage
add_action('registered_post_type', 'your_custom_function', 10, 2); function your_custom_function($post_type, $post_type_object) { // your custom code here return $post_type; }
Parameters
$post_type
(string) – The registered post type.$post_type_object
(WP_Post_Type) – Arguments used to register the post type.
More information
See WordPress Developer Resources: registered_post_type
Examples
Log registered post types
Log the name of the registered post types to a file.
add_action('registered_post_type', 'log_registered_post_types', 10, 2); function log_registered_post_types($post_type, $post_type_object) { error_log("Registered post type: " . $post_type . "\n", 3, "/tmp/registered_post_types.log"); return $post_type; }
Add a custom capability to a specific post type
Add a custom capability to the ‘book’ post type.
add_action('registered_post_type', 'add_custom_capability', 10, 2); function add_custom_capability($post_type, $post_type_object) { if ($post_type == 'book') { $post_type_object->cap->edit_others_posts = 'edit_others_books'; } return $post_type; }
Modify the post type labels
Change the labels of the ‘movie’ post type.
add_action('registered_post_type', 'modify_movie_labels', 10, 2); function modify_movie_labels($post_type, $post_type_object) { if ($post_type == 'movie') { $post_type_object->labels->name = __('Films', 'textdomain'); $post_type_object->labels->singular_name = __('Film', 'textdomain'); } return $post_type; }
Add a custom rewrite rule to a post type
Add a custom rewrite rule to the ‘product’ post type.
add_action('registered_post_type', 'add_custom_rewrite_rule', 10, 2); function add_custom_rewrite_rule($post_type, $post_type_object) { if ($post_type == 'product') { $post_type_object->rewrite['slug'] = 'shop'; } return $post_type; }
Display a message after registering a post type
Display a message in the admin area after registering the ‘event’ post type.
add_action('registered_post_type', 'display_message_after_registering_post_type', 10, 2); function display_message_after_registering_post_type($post_type, $post_type_object) { if ($post_type == 'event') { add_action('admin_notices', function() { echo '<div class="notice notice-success is-dismissible">'; echo '<p>' . __('Event post type registered successfully!', 'textdomain') . '</p>'; echo '</div>'; }); } return $post_type; }