Skip to content
CoverKit CoverKit v0.1.13

Hooks and extension points

Filters and actions found in current includes/ PHP. For use case registration, see use-cases-and-output-profiles.md.

ActionSourcePurpose
coverkit_initcoverkit.php (fire_coverkit_init on init priority 15)Register use case types (priority < 10); registry boots at priority 10
coverkit_generate_imageREST::__construct()Async fetch of queued generation URLs
coverkit_retry_screenshotsincludes/functions.phpRetries templates flagged _coverkit_needs_retry
coverkit_fs_loadedincludes/freemius.phpFires 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
);
FilterSourcePurpose
coverkit_pre_generateRenderer::generate()Return non-null to short-circuit generation
coverkit_after_generateRenderer::generate()Adjust generation result array
coverkit_generation_optionsGenerator (canvas process)Merge options before render
coverkit_max_canvas_dimensionGeneratorMax canvas edge (default 12000)
coverkit_responsive_sizesget_coverkit_responsive_sizes()Canvas hash derivative widths (non-use-case routes)
coverkit_use_case_allowed_widthscoverkit_get_use_case_allowed_widths()Public ?width= per use case (null = canonical only)
coverkit_user_can_resize_imagescoverkit_user_can_resize_images()Whether the current user may request arbitrary REST ?width=
coverkit_rest_generation_max_widthcoverkit_get_rest_generation_max_width()Max width for privileged resize requests
coverkit_post_list_preview_widthcoverkit_get_post_list_preview_width()Posts list thumbnail width (privileged)
coverkit_template_list_preview_widthcoverkit_get_template_list_preview_width()Templates list Preview column thumbnail width (default 150px)
coverkit_post_list_popover_preview_widthcoverkit_get_post_list_popover_preview_width()Posts list popover image max layout width (default 500px)
coverkit_rest_use_case_image_srcset_densitiescoverkit_rest_use_case_image_srcset()Multipliers for posts list thumbnail srcset (default 1, 2)
coverkit_rest_template_preview_srcset_densitiescoverkit_rest_template_preview_srcset()Multipliers for templates list thumbnail srcset (default 1, 2)
coverkit_canvas_image_cache_timeREST::serve_canvas_image()Cache-Control max-age (default 31536000)
coverkit_allow_image_browser_cacheREST::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_optionsREST::get_autocompleters()Editor placeholder tags
FilterSourcePurpose
coverkit_collect_field_rawField_Resolver::collect_raw()Adjust raw field value after built-in resolution
coverkit_preview_dataField_Resolver::collect_preview_data()Placeholder data when no post context
coverkit_format_field_valueUse_Case::format_field_value()Global formatter pass
coverkit_use_case_{$slug}_format_field_valueUse_Case::format_field_value()Per use case (also registered when subclass implements filter_format_field_value())
coverkit_use_case_settings_schemaUse_Case::get_settings_schema()Settings fields for editor
coverkit_use_case_{$slug}_settings_schemasamePer-slug settings schema
coverkit_use_case_mapping_sourcesUse_Case::get_mapping_sources()Mapping picker catalog
coverkit_use_case_{$slug}_mapping_sourcessamePer-slug mapping sources
coverkit_block_bindings_enabledBlock_Bindings::is_enabled()Enable native metadata.bindings on coverkit/layer (default true; requires WP 7.0+)
FilterSourcePurpose
coverkit_opengraph_meta_enabledOpen_Graph_Image_Use_CaseDisable meta output for a request context
coverkit_opengraph_request_post_idsamePost ID embedded in image URL
coverkit_opengraph_template_idsameTemplate ID used for OG image
FilterSourcePurpose
coverkit_featured_image_template_idFeatured_Image_Use_CaseTemplate ID resolved for a post
coverkit_featured_image_urlsameREST image URL for front-end or editor preview
coverkit_featured_image_html_enabledsameDisable <img> replacement for a post
FilterSourcePurpose
coverkit_use_case_public_image_permissionREST::get_use_case_image_permission()Whether a use-case image route allows anonymous access
coverkit_site_health_check_methodsSite_HealthAsync Site Health test method list
coverkit_site_health_async_transient_ttlSite_HealthTTL for async Site Health transients (default one hour)
FilterSourcePurpose
coverkit_cache_unique_idcoverkit_get_cache_unique_id() in includes/functions.phpOverride 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().

FilterSourcePurpose
coverkit_screenshot_request_argsget_screenshot() in functions.phpmShots / screenshot HTTP args
coverkit_freemius_argsincludes/freemius.phpFreemius SDK initialization args
  • Block category: Post_Type::block_categories()coverkit
  • Patterns: patterns/*.php via Patterns, category coverkit, postTypescoverkit
  • plugins_loaded — plugin init()
  • rest_api_init — REST routes
  • allowed_block_types_all — restrict template editor to coverkit/*
  • updated_post_meta / added_post_meta / deleted_post_meta — rebuild loader manifest when _coverkit_use_cases changes
  • wp_head — Open Graph tags from Open_Graph_Image_Use_Case