Every extension point is a documented filter or action prefixed jmcl_. The full list ships with the plugin in docs/hooks.md. Hook in on jmcl_loaded.
Most useful hooks
| Hook | Use |
|---|---|
jmcl_post_types | Add post types the plugin works with. |
jmcl_field_types | Register a field type (with jmcl_sanitize_field, jmcl_display_field, jmcl_metabox_input). |
jmcl_meta_builtins / jmcl_meta_text | Add an item that can appear in card text and bylines. |
jmcl_display_defaults / jmcl_display_sanitize | Add your own display settings. |
jmcl_query_args | Adjust the WP_Query for any display. |
jmcl_card_body / jmcl_card_classes | Change card markup and classes. |
jmcl_presets | Add your own preset looks. |
jmcl_single_layouts / jmcl_single_block | Add single layouts or blocks. |
jmcl_content_image | Choose the image used when a post has no featured image. |
add_filter( 'jmcl_presets', function ( $p ) {
$p['clinic'] = [
'label' => 'Clinic News', 'note' => 'Our house style', 'pro' => 0,
'set' => [ 'style' => 'grid', 'columns' => 2, 'ratio' => '4/3', 'radius' => 12,
'captions' => [ 'title', '_date' ], 'badge' => '_cats', 'meta_icons' => 1 ],
];
return $p;
} );
CSS custom properties
On .jmcl-display: --jmcl-cols, --jmcl-cols-t, --jmcl-cols-m, --jmcl-gap, --jmcl-radius, --jmcl-ratio, --jmcl-pad, --jmcl-per-view, --jmcl-card-bg, --jmcl-accent, --jmcl-c1-size, --jmcl-c1-color, --jmcl-c2-color, --jmcl-badge-bg, --jmcl-badge-fg. On .jmcl-single: --jmcl-w (text width) and --jmcl-wide (top image width).
Template override
Classic themes: copy templates/single-content.php from the plugin to your-theme/jmarztech-content-layouts/single-content.php. Block themes get a plugin template named “Content Layouts: single” that you can edit in the Site Editor.
JavaScript
window.jmclSlider— register slider modes (modes[name] = { setup, go, sync }) and plugins (plugins.push(fn)); each slider hason("change"),go(i),next(),prev().window.jmclApp— extend the admin app: field editors (types), slots (add,wire,collect).
REST API
The admin app uses /wp-json/jmarztech/v1/layouts/…, authenticated with the standard WordPress REST nonce and the edit_posts / manage_options capabilities. Add routes with jmcl_rest_routes.