JMarzTech Content Layouts – Post Grids, Sliders & Custom Fields
JMarzTech Content Layouts – Post Grids, Sliders & Custom Fields
Description
Most post-grid plugins show a title and a date and stop there. JMarzTech Content Layouts lets every card say exactly what you want — “Pets / May 30, 2026 / Photo, Screenshot” — from your categories, tags, dates, author, reading time and your own custom fields, in the order you choose.
Build a display once, then drop it on any page with a shortcode. Your content stays in ordinary WordPress posts and pages: nothing is copied, nothing is locked in.
Four ways to lay out content
- Grid — even rows of cards, with the image cropped to the shape you pick (square, 4:3, 3:2, 16:9, 21:9, portrait) or left at its own proportions.
- Masonry — natural heights, packed into columns.
- List — the image beside the text, as a thumbnail or a large banner, one or two rows across.
- Slider — one card at a time with arrows, dots, looping, swipe and keyboard support.
Start from one of nine ready-made looks — Magazine, Featured + Grid, Lead Story, Classic Blog, News List, Wide List, Pinboard, Hero Slider and Minimal Text — or set everything yourself. Columns, gaps, corner radius and a maximum width are set per display. On tablets and phones columns drop automatically. A grid can make its first item large, across the top or two columns by two rows with the next stories beside it, magazine style.
Say what you want on each card
Pick the items for the card text and put them in order. The first is the bold first line; the rest form the second line, joined by the separator you choose. Built in: title, date published, date updated, author, categories, tags, content type, parent page, comment count, reading time, any other public taxonomy, and every custom field you add.
Text sits below the image, above it, over it, over it on hover, or not at all. Add an excerpt of any length and a “Read more” link if you like.
Choose exactly which posts
Filter by content type, category, tag, any taxonomy, any custom field, search text, date range, author, sticky status, child pages of a page, or hand-pick specific items in your own order. Leave out the page the display sits on, skip the first few, and limit how many show.
Your own fields, without ACF
Add fields under JMLayouts Fields: text, number, date or tags. Each one gets a box on the post editor (block or classic), a column in the Library, and can appear on cards, on single pages and as a visitor filter. Stored as ordinary post meta and taxonomies.
Edit hundreds of posts at once
The Library is a spreadsheet of your posts and pages. Click any title, category, tag, field or status to edit it in place; press Tab to move to the next cell. Select any number of rows and set fields, add or remove categories and tags, or change status across all of them at once.
Spreadsheets in and out
Export the Library (with its search and filters) to a CSV, edit it in Excel, Numbers or Google Sheets, and import it back. Every import is checked first and shows what will change, what already matches and which rows have a problem, before anything is saved. Rows without an ID can be added as new drafts.
Archive pages
Optional, and off by default. Give the blog page, category, tag and other taxonomy archives, author pages or search results a display, and they are drawn with it between your theme’s header and footer: the display sets the look, the archive decides which posts.
Visitor controls
Turn on a search box, filter dropdowns, sorting, a grid/list/masonry layout switcher, page numbers or a “Load more” button. Each display keeps its own state in the address bar, so two displays on one page never page or filter each other.
Single post and page layouts
Optional, and off by default. Switch it on per content type and choose Classic, Wide image or Minimal; each post can pick its own layout or opt out from its editor screen. The layout draws a breadcrumb, title, byline, image, content, tags, your fields, an author box, previous/next links, related posts and comments between your theme’s header and footer.
Pages built with Elementor, pages with their own page template, the front page and the blog page are left to your theme unless that page picks a layout itself.
Show the current post’s layout anywhere — including inside an Elementor or block theme template — with [jmcl_single].
Shortcodes
[jmcl_display id="1"] shows a saved display. Override anything inline: `[jmcl_display id="1" columns="2" limit="4"]`.
[jmcl_posts category="news" columns="3" limit="6"] builds one on the spot. Any taxonomy name or custom field key works as an attribute.
Works with your theme
Classic and block themes are both supported. Elementor users get a JMLayouts Display widget, or can paste a shortcode into the Shortcode widget.
More with JMLayouts Pro
JMLayouts Pro is a separate plugin, sold at https://jmarztech.com/layouts/pro/. It adds carousels with several cards at once, more slider effects, card styles and colours, more single layouts and presets, and more field types. Everything in this plugin works fully without it.
External services
This plugin makes no external requests. Nothing about your site or your content is sent anywhere, and the admin screens load no third-party assets.
Source Code
The JavaScript and CSS in this plugin are the original, human-readable source files. There is no build step and nothing is compiled or minified: assets/app.js, assets/front.js and the stylesheets in assets/ are edited directly. The plugin bundles no third-party JavaScript libraries. The Manrope font in assets/fonts/ is licensed under the SIL Open Font License (see assets/fonts/LICENSE.txt).
Installation
- Install the plugin from Plugins Add New, or upload the zip there.
- Activate it.
- Go to JMLayouts Displays and create a display.
- Paste its shortcode into any page, post or Elementor Shortcode widget.
- Optional: add custom fields under JMLayouts Fields, and switch on single layouts under JMLayouts Settings.
Faq
No. Displays read your posts and pages; they never copy or modify them. Only the Library and the editor box write to posts, and only the fields you edit.
Only if you switch it on under JMLayouts Settings, or pick a layout on a particular post. It is off by default.
Nothing, unless you switch on single layouts. If you do, Content Layouts draws those posts instead of the Theme Builder template. Pages built with Elementor itself are always left alone unless you choose a layout for that page.
The field stops appearing, but stored values stay in the database. Add the field back with the same key and everything returns.
Yes, under JMLayouts Settings Archive pages. Pick a display for each kind of archive; anything left on “Theme default” keeps your theme’s template. Page numbers are added automatically.
Only the columns in the file, and only on rows whose ID matches a post or page you may edit. Empty cells leave values alone unless you choose to clear them. Nothing is saved until you have seen the check and clicked Import.
Not unless you ask. A setting under JMLayouts Settings removes displays, fields and their values on uninstall; it is off by default. Your posts and pages are never touched either way.
Pages load one small stylesheet and one small script, and only pages that actually show a display or a layout. No jQuery, no slider library.
Yes: real buttons with labels, keyboard arrows, swipe, slides announced as “3 of 6”, links in hidden slides kept out of the tab order, and smooth scrolling switched off for visitors who ask for reduced motion.
Yes. Field types, display options, card markup, query arguments, layouts and blocks all pass through documented filters and actions. See docs/hooks.md in the plugin folder.
Reviews
Changelog
1.0.10
- Elementor: a JMLayouts Display widget that places any saved display.
- The Clean Cards, Text Above, Colour Block, Card Carousel and Spotlight presets and the Hero, Cover, Split, Sidebar, Magazine and Card single layouts now live entirely in JMLayouts Pro. A post set to one of those layouts shows Classic and keeps its setting.
- Markup from add-on filters is run through wp_kses before it is printed; extra CSS is added with wp_add_inline_style.
- The Library, CSV export and item pickers only list drafts, scheduled, pending and private items the current user may edit.
- JavaScript and CSS reformatted for readability.
1.0.9
- Tested up to WordPress 7.1.
- Code tidy-ups from Plugin Check: visitor filter input is sanitized as it is read, and the custom field value lookup no longer builds its ORDER BY from a variable.
1.0.8
- Visitor sort dropdown: “Newest” is now “Date published” and “Recently updated” is “Date updated”, so they read correctly with the ascending / descending choice.
1.0.7
- Layout switcher: a display can offer visitors icon buttons to switch between grid, list and masonry (Display Visitor controls). The display’s own style shows first; the choice is kept per display in the address bar and survives filtering, and the switch happens in place without reloading the page.
1.0.6
- Featured first item: a grid can show its first item large, across the top or two columns by two rows with the next items beside it. New presets: Featured + Grid and Lead Story.
- CSV export and import in the Library. Export follows the Library’s search and filters; import is checked first and reports updates, additions, unchanged rows and problems before anything is saved. Column names can be the export’s keys or your field labels.
- Archive pages: the blog page, category, tag and other taxonomy archives, author pages and search results can each be drawn with a display, with the archive’s title and description above it. Classic and block themes.
- Fixed: in themes that size images from script (Twenty Twenty-One), cropped card images did not fill their frame.
1.0.5
- Fixed: with text over the image, a long title on a narrow card (three columns inside a theme’s content column, say) spilled out of the top of the card. The card now grows to fit the text and the image stretches to cover it.
1.0.4
- Preset looks: twelve ready-made styles at the top of the display builder — Magazine, Classic Blog, Clean Cards, Text Above, Colour Block, News List, Wide List, Pinboard, Hero Slider, Card Carousel, Minimal Text and Spotlight. One click fills in Layout and Card text (never which items) and opens the preview. Thumbnails are drawn by the plugin; no images are loaded from anywhere.
- Presets also work in shortcodes: [jmcl_posts preset=”magazine” category=”news”] or [jmcl_display id=”3″ preset=”pinboard”].
- Card text now has 1em of padding all round, on every style.
1.0.3
- New “Shade behind text on images” option for text over the image: a gradient from the bottom (as before), darken the whole image, or none with a text shadow.
- Text over an image is now sized to the card rather than the browser window, so headlines, badges and meta stay in proportion at any column count and on phones.
1.0.2
- Fixed: posts and pages without a featured image showed a text-only card even though their content had images. The first image is now found in Elementor pages, in images added by shortcodes (galleries included), behind lazy-load plugins, and among images uploaded to the post. The result is remembered until the post is next edited.
1.0.1
- Card badge: show the first category (or any taxonomy or tags field) as a badge above the title.
- Icons on the second card line — author, date, comments, reading time — instead of separators. Comment counts read as a number beside the icon, zero included.
- Text over an image now gets a larger headline and more breathing room by default.
1.0.0
- First release: saved displays (grid, masonry, list, slider), card text from any post data or custom field, Library with in-place and bulk editing, custom fields with an editor box, visitor search, filters, sorting, page numbers and Load more, single post and page layouts (Classic, Wide image, Minimal), shortcodes, and block theme support.