PHP backend
Core PHP classes under CoverKit\ in includes/. Registration helpers live in includes/functions.php.
Bootstrap
Section titled “Bootstrap”coverkit.php defines COVERKIT_PLUGIN_DIR, COVERKIT_PLUGIN_URL, PSR-4-style autoloading (CoverKit\ → includes/class-coverkit-*.php; CoverKit\Use_Cases\* → includes/use-cases/class-coverkit-*.php), and init() on plugins_loaded.
Core classes
Section titled “Core classes”CoverKit\Post_Type
Section titled “CoverKit\Post_Type”File: includes/class-coverkit-post-type.php
- Registers
coverkitCPT and template meta (width,height,background,gradient,_coverkit_use_cases,_coverkit_active_use_cases). - Registers blocks from
build/blocks/*; restricts allowed blocks tocoverkit/*in the template editor. - Renders
coverkit/canvason the front end viaRenderer::generate_from_content(). - List-table preview column, per-template cache clear, duplicate/reload row actions.
- Imports starter templates from
assets/templates/on activation.
CoverKit\REST
Section titled “CoverKit\REST”File: includes/class-coverkit-rest.php
Registers coverkit/v1 routes and handles coverkit_generate_image async queue. See rest-api.md.
CoverKit\Renderer
Section titled “CoverKit\Renderer”File: includes/class-coverkit-renderer.php
generate( string $generation_key, $template_id, ?int $post_id = null, array $options = array() )— use-case generation; honorscoverkit_pre_generate/coverkit_after_generate.generate_from_content( $content, ?int $post_id = null, array $meta = array(), array $options = array() )— editor preview and canvas rendering.
Default options include format (png), width, quality, force.
CoverKit\Use_Case / Use_Case_Registry / Use_Case_Storage
Section titled “CoverKit\Use_Case / Use_Case_Registry / Use_Case_Storage”Files:
includes/class-coverkit-use-case.phpincludes/class-coverkit-use-case-registry.phpincludes/class-coverkit-use-case-storage.php
Registry — coverkit_register_use_case( $slug, $args ) on coverkit_init (priority < 10); boot() at priority 10 reads coverkit_active_use_case_classes and instantiates active use case classes.
Storage — canonical assignments in post meta _coverkit_use_cases; rebuilds loader manifest when meta changes.
See use-cases-and-output-profiles.md.
CoverKit\Template
Section titled “CoverKit\Template”File: includes/class-coverkit-template.php
- Parses
coverkitposts or block content intocanvas+elements. apply_data( ?int $post_id = null, string $use_case_id = '' )— resolves{field_key}tokens in shape text and runsapply_use_case_mappings()when a use case slug is provided.apply_use_case_mappings()loads mappings from_coverkit_use_casesand delegates toMapping_Applicator::apply().
Field pipeline
Section titled “Field pipeline”| Class | File | Role |
|---|---|---|
Field_Resolver | class-coverkit-field-resolver.php | collect_raw( $field_name, $post_id ) — built-ins, post_meta:*, acf:*; filter coverkit_collect_field_raw |
Field_Formatter | class-coverkit-field-formatter.php | Applies formatter names (date, image, …) after use-case-specific filters |
Mapping_Applicator | class-coverkit-mapping-applicator.php | Writes mapped values onto shape element attributes |
Use_Case::format_field_value() collects via Field_Resolver, then Field_Formatter and filters coverkit_use_case_{$slug}_format_field_value / coverkit_format_field_value.
Built-in resolver keys include: post_title, post_excerpt, post_content, post_date, post_url, author, site_name, site_description, site_url, site_logo, featured_image, categories, tags, post_meta:{key}, acf:{name} when ACF is available.
CoverKit\Generator
Section titled “CoverKit\Generator”File: includes/class-coverkit-generator.php plus traits in includes/generator/.
Imagick-based rendering, caching under get_coverkit_path( '_cache/generator/' ), format conversion, responsive derivatives. Filter: coverkit_generation_options, coverkit_max_canvas_dimension.
Built-in use case outputs
Section titled “Built-in use case outputs”Open_Graph_Image_Use_Case—wp_headmeta; image URL via/opengraph/...REST route.Sidebar_Image_Use_Case— sidebar preview in the template editor.
CoverKit\Settings
Section titled “CoverKit\Settings”File: includes/class-coverkit-settings.php
Settings → CoverKit admin page; registers coverkit_options and coverkit_presets; enqueues build/settings/.
CoverKit\Patterns / CoverKit\Examples
Section titled “CoverKit\Patterns / CoverKit\Examples”Patterns— block patterns frompatterns/.Examples— dev admin page forexamples/PHP scripts (see examples.md).
Global functions
Section titled “Global functions”Notable helpers in includes/functions.php:
coverkit_register_use_case( string $slug, array $args ): boolget_coverkit_path(),clear_cache(),get_coverkit_rest_url(),get_coverkit_resize()get_coverkit_responsive_sizes(),is_coverkit_allowed_width()get_screenshot(),save_image_to_media_library()get_templates(),get_template_by_context()
Registration example
Section titled “Registration example”add_action( 'coverkit_init', static function (): void { \CoverKit\coverkit_register_use_case( 'my_packaging', array( 'label' => __( 'Packaging shot', 'my-plugin' ), 'class' => \MyPlugin\Packaging_Use_Case::class, ) ); }, 5);