Hooks and extension points
Filters and actions found in current includes/ PHP. For use case registration, see use-cases-and-output-profiles.md.
Actions
Section titled “Actions”| Action | Source | Purpose |
|---|---|---|
coverkit_init | coverkit.php (fire_coverkit_init on init priority 15) | Register use case types (priority < 10); registry boots at priority 10 |
coverkit_generate_image | REST::__construct() | Async fetch of queued generation URLs |
coverkit_retry_screenshots | includes/functions.php | Retries templates flagged _coverkit_needs_retry |
coverkit_fs_loaded | includes/freemius.php | Fires when Freemius SDK is loaded |
Register custom use cases on coverkit_init:
add_action( 'coverkit_init', static function (): void { \CoverKit\coverkit_register_use_case( 'my_slug', array( 'label' => 'My use case', 'class' => \MyPlugin\My_Use_Case::class, ) ); }, 5);Filters — generation and images
Section titled “Filters — generation and images”| Filter | Source | Purpose |
|---|---|---|
coverkit_pre_generate | Renderer::generate() | Return non-null to short-circuit generation |
coverkit_after_generate | Renderer::generate() | Adjust generation result array |
coverkit_generation_options | Generator (canvas process) | Merge options before render |
coverkit_max_canvas_dimension | Generator | Max canvas edge (default 12000) |
coverkit_responsive_sizes | get_coverkit_responsive_sizes() | Canvas hash derivative widths (non-use-case routes) |
coverkit_use_case_allowed_widths | coverkit_get_use_case_allowed_widths() | Public ?width= per use case (null = canonical only) |
coverkit_user_can_resize_images | coverkit_user_can_resize_images() | Whether the current user may request arbitrary REST ?width= |
coverkit_rest_generation_max_width | coverkit_get_rest_generation_max_width() | Max width for privileged resize requests |
coverkit_post_list_preview_width | coverkit_get_post_list_preview_width() | Posts list thumbnail width (privileged) |
coverkit_template_list_preview_width | coverkit_get_template_list_preview_width() | Templates list Preview column thumbnail width (default 150px) |
coverkit_post_list_popover_preview_width | coverkit_get_post_list_popover_preview_width() | Posts list popover image max layout width (default 500px) |
coverkit_rest_use_case_image_srcset_densities | coverkit_rest_use_case_image_srcset() | Multipliers for posts list thumbnail srcset (default 1, 2) |
coverkit_rest_template_preview_srcset_densities | coverkit_rest_template_preview_srcset() | Multipliers for templates list thumbnail srcset (default 1, 2) |
coverkit_canvas_image_cache_time | REST::serve_canvas_image() | Cache-Control max-age (default 31536000) |
coverkit_allow_image_browser_cache | REST::should_allow_browser_cache_for_image() | Whether use-case image responses may send browser cache headers (ETag, 304, long max-age); template preview routes always bypass this |
coverkit_autocompleter_options | REST::get_autocompleters() | Editor placeholder tags |
Filters — fields and use cases
Section titled “Filters — fields and use cases”| Filter | Source | Purpose |
|---|---|---|
coverkit_collect_field_raw | Field_Resolver::collect_raw() | Adjust raw field value after built-in resolution |
coverkit_preview_data | Field_Resolver::collect_preview_data() | Placeholder data when no post context |
coverkit_format_field_value | Use_Case::format_field_value() | Global formatter pass |
coverkit_use_case_{$slug}_format_field_value | Use_Case::format_field_value() | Per use case (also registered when subclass implements filter_format_field_value()) |
coverkit_use_case_settings_schema | Use_Case::get_settings_schema() | Settings fields for editor |
coverkit_use_case_{$slug}_settings_schema | same | Per-slug settings schema |
coverkit_use_case_mapping_sources | Use_Case::get_mapping_sources() | Mapping picker catalog |
coverkit_use_case_{$slug}_mapping_sources | same | Per-slug mapping sources |
coverkit_block_bindings_enabled | Block_Bindings::is_enabled() | Enable native metadata.bindings on coverkit/layer (default true; requires WP 7.0+) |
Filters — Open Graph
Section titled “Filters — Open Graph”| Filter | Source | Purpose |
|---|---|---|
coverkit_opengraph_meta_enabled | Open_Graph_Image_Use_Case | Disable meta output for a request context |
coverkit_opengraph_request_post_id | same | Post ID embedded in image URL |
coverkit_opengraph_template_id | same | Template ID used for OG image |
Filters — Featured image
Section titled “Filters — Featured image”| Filter | Source | Purpose |
|---|---|---|
coverkit_featured_image_template_id | Featured_Image_Use_Case | Template ID resolved for a post |
coverkit_featured_image_url | same | REST image URL for front-end or editor preview |
coverkit_featured_image_html_enabled | same | Disable <img> replacement for a post |
Filters — REST and Site Health
Section titled “Filters — REST and Site Health”| Filter | Source | Purpose |
|---|---|---|
coverkit_use_case_public_image_permission | REST::get_use_case_image_permission() | Whether a use-case image route allows anonymous access |
coverkit_site_health_check_methods | Site_Health | Async Site Health test method list |
coverkit_site_health_async_transient_ttl | Site_Health | TTL for async Site Health transients (default one hour) |
Filters — cache
Section titled “Filters — cache”| Filter | Source | Purpose |
|---|---|---|
coverkit_cache_unique_id | coverkit_get_cache_unique_id() in includes/functions.php | Override the six-character hex id in the cache directory name coverkit-{id} (must match /^[a-f0-9]{6}$/ after lowercasing; invalid values fall back to the AUTH_KEY-derived default) |
Default id: substr( hash_hmac( 'sha256', 'coverkit-cache-directory', AUTH_KEY ), 0, 6 ), or wp_salt( 'coverkit_cache' ) when AUTH_KEY is missing or empty. Helpers: coverkit_get_cache_unique_id(), coverkit_get_cache_unique_id_default(), coverkit_get_cache_directory_basename(), get_coverkit_path().
Other integration filters
Section titled “Other integration filters”| Filter | Source | Purpose |
|---|---|---|
coverkit_screenshot_request_args | get_screenshot() in functions.php | mShots / screenshot HTTP args |
coverkit_freemius_args | includes/freemius.php | Freemius SDK initialization args |
Block and pattern extension
Section titled “Block and pattern extension”- Block category:
Post_Type::block_categories()—coverkit - Patterns:
patterns/*.phpviaPatterns, categorycoverkit,postTypes→coverkit
Internal WordPress hooks (selected)
Section titled “Internal WordPress hooks (selected)”plugins_loaded— plugininit()rest_api_init— REST routesallowed_block_types_all— restrict template editor tocoverkit/*updated_post_meta/added_post_meta/deleted_post_meta— rebuild loader manifest when_coverkit_use_caseschangeswp_head— Open Graph tags fromOpen_Graph_Image_Use_Case