Title: Image Text Wrap
Author: cmtkennyb
Published: <strong>Ogwomunaana (Muwakanya) 24, 2026</strong>
Last modified: Ogwomunaana (Muwakanya) 24, 2026

---

Search plugins

![](https://ps.w.org/image-text-wrap/assets/icon-256x256.png?rev=3664355)

# Image Text Wrap

 By [cmtkennyb](https://profiles.wordpress.org/cmtkennyb/)

[Download](https://downloads.wordpress.org/plugin/image-text-wrap.1.3.4.zip)

 * [Details](https://lug.wordpress.org/plugins/image-text-wrap/#description)
 * [Reviews](https://lug.wordpress.org/plugins/image-text-wrap/#reviews)
 *  [Installation](https://lug.wordpress.org/plugins/image-text-wrap/#installation)
 * [Development](https://lug.wordpress.org/plugins/image-text-wrap/#developers)

 [Support](https://wordpress.org/support/plugin/image-text-wrap/)

## Description

Image Text Wrap adds a Gutenberg block that flows your body text around an image
the way a page-layout program does. Drop the block into a post, type your paragraphs
after it, and the text reflows around the image.

You get real control over the wrap instead of the all-or-nothing float the core 
Image block gives you:

 * **Float left or right**, with the image aligned to your content column (not thrown
   into the page gutter).
 * **Vertical offset** slides the image down into the copy so text flows _above_
   it, then wraps beside and below.
 * **Bounding box wrap** flows text around the image’s box, with independent gaps
   for the text side, above, and below, like a page-layout program’s box wrap.
 * **Contour wrap** flows text along a circle or ellipse enclosing the image and
   its caption, with a single **contour offset** controlling the standoff (the gap
   above the image is limited by the vertical offset).
 * **Top & bottom** mode drops the image into its own band with text above and below
   only.
 * **Captions** appear below the image, edited from the sidebar, with the body text
   wrapping around image and caption together. They accept simple inline HTML (em,
   strong, links), and the standard WordPress Typography panel (font size, line 
   height, appearance, letter spacing, letter case, decoration) styles the caption
   text.

The block saves as plain HTML with inline styles, so published posts keep rendering
even across editor updates. There is no build step and no external dependencies.

**A note on wrapping:** text flows above, beside (one side), and below the image.
Text hugging _both_ sides of a centered image at once is not supported, because 
the browser feature required for it (CSS Exclusions) does not exist in current browsers.

## Screenshots

[⌊Bounding box wrap on the front end: the image floats left in a published post,
with text flowing above it, then wrapping down the right side and below.⌉⌊Bounding
box wrap on the front end: the image floats left in a published post, with text 
flowing above it, then wrapping down the right side and below.⌉[

Bounding box wrap on the front end: the image floats left in a published post, with
text flowing above it, then wrapping down the right side and below.

[⌊The Text Wrap panel controls: wrap type, position, wrap around, vertical offset,
per-side gaps, display width, caption, and the Typography styles.⌉⌊The Text Wrap
panel controls: wrap type, position, wrap around, vertical offset, per-side gaps,
display width, caption, and the Typography styles.⌉[

The Text Wrap panel controls: wrap type, position, wrap around, vertical offset,
per-side gaps, display width, caption, and the Typography styles.

[⌊Contour ellipse wrap in the editor: text follows an ellipse standing off the image
by a uniform contour offset.⌉⌊Contour ellipse wrap in the editor: text follows an
ellipse standing off the image by a uniform contour offset.⌉[

Contour ellipse wrap in the editor: text follows an ellipse standing off the image
by a uniform contour offset.

[⌊Contour circle wrap in the editor: text hugs a circle around the image and its
caption.⌉⌊Contour circle wrap in the editor: text hugs a circle around the image
and its caption.⌉[

Contour circle wrap in the editor: text hugs a circle around the image and its caption.

[⌊Bounding box wrap in the editor, with the block's List View and Text Wrap panel
open.⌉⌊Bounding box wrap in the editor, with the block's List View and Text Wrap
panel open.⌉[

Bounding box wrap in the editor, with the block’s List View and Text Wrap panel 
open.

## Blocks

This plugin provides 1 block.

 *   Image Text Wrap Wrap body text around an image. Float it left or right, slide
   it down the page so text flows above it, and pick how the words hug the edge:
   a plain box, a circle or ellipse.

## Installation

 1. Upload the `image-text-wrap` folder to `/wp-content/plugins/`, or install the plugin
    through the Plugins screen in WordPress.
 2. Activate the plugin through the **Plugins** screen.
 3. In the post editor, add the **Image Text Wrap** block, choose an image, and type
    your paragraphs after it. Adjust the wrap in the block’s **Text Wrap** panel.

## FAQ

### How do I get text above the image?

Raise the **Vertical offset** slider. The text that flows above the image comes 
from the block placed immediately after it, so make sure a paragraph follows the
image block.

### Can text wrap around all four sides of a centered image?

No. Text flows above, below, and on one side. Simultaneous wrapping on both sides
of a mid-column image requires CSS Exclusions, which no current browser supports.

### Does it work on mobile?

Yes. Below 600px the image drops to full width with text above and below, so a narrow
column never gets squeezed. Above that it keeps the float and wrap.

### Does it need a build step?

No. The block is authored in plain JavaScript against the WordPress editor APIs,
with no compile step, bundler, or external libraries.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Image Text Wrap” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ cmtkennyb ](https://profiles.wordpress.org/cmtkennyb/)

[Translate “Image Text Wrap” into your language.](https://translate.wordpress.org/projects/wp-plugins/image-text-wrap)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/image-text-wrap/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/image-text-wrap/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/image-text-wrap/)
by [RSS](https://plugins.trac.wordpress.org/log/image-text-wrap/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.4

 * Documentation only: brought the Upgrade Notice section in line with 1.3.3 (the
   1.3.1 notice no longer advertises the reverted in-canvas caption editing) and
   added notices for 1.3.2 and 1.3.3. No code changes.

#### 1.3.3

 * Restored the Caption field in the block sidebar, removed by mistake in 1.3.1,
   and removed the in-canvas caption editing that replaced it. The caption in the
   canvas is a display-only preview again, now sanitized (scripts and event attributes
   stripped) so the 1.3.1 hardening is preserved.

#### 1.3.2

 * Blocks using the silhouette contour wrap removed in 1.2.0 (shape-outside from
   the image’s alpha channel) now validate and migrate instead of showing “unexpected
   or invalid content”: deprecated save formats for 1.0.0 and 1.1.x now include 
   the contour branch, and those blocks convert to the enclosing ellipse contour,
   the closest modern equivalent.
 * Legacy migrations now scrub generated wrap classes (has-shape, shape-*) that 
   earlier block recoveries had captured into the block’s custom class name, which
   would have wrongly restyled migrated blocks.

#### 1.3.1

 * Blocks published under any earlier version now upgrade cleanly: deprecated save
   formats for 1.0.0 through 1.3.0 are registered, so existing posts no longer show“
   unexpected or invalid content”, and the old vertical gap’s top spacing carries
   over into the new Gap above image setting.
 * Captions are now written directly under the image in the editor canvas (like 
   the core Image block), with bold, italics, and links via the formatting toolbar.
   This also hardens the caption against markup injection and against server-side
   filters rewriting it out from under the editor.
 * The caption is read from the saved markup rather than duplicated in the block
   comment, so security filters (KSES, link rel rewriting) can no longer make the
   stored post invalid.
 * Allowed the wrap’s shape-outside and box-sizing styles through KSES, so authors
   without the unfiltered_html capability keep their wrap when saving.
 * Fixed the Typography panel’s line height having no effect on the caption.
 * Fixed a stale Gap below image value distorting the contour geometry after switching
   from Bounding box to Contour mode.
 * On narrow viewports the wrap box now stays inside the content column instead 
   of overflowing it; a clamped image gets a proportionally wider standoff and never
   overlaps text.
 * The editor script’s strings are now translatable (wp_set_script_translations).
 * Copy cleanup: the contour offset help now notes the gap above the image is limited
   by the vertical offset, and the screenshot description matches the 1.3.0 controls.

#### 1.3.0

 * Reworked text wrapping around the two wrap models used in page-layout programs:**
   Bounding box** (wrap to the image’s box with independent per-side gaps) and **
   Contour** (wrap along a circle or ellipse with one uniform offset).
 * Contour wrap: new **Contour offset** control, a uniform standoff between the 
   text and the wrap contour, holding evenly all the way around the shape, including
   its widest point. Adjusting it never moves the image.
 * Contour wrap: the contour always encloses the image and its caption, at any caption
   height, so the caption is never overrun and never dropped. (A perfect circle 
   cannot enclose a caption, so with a caption the contour is the enclosing ellipse.)
 * Fixed: circle and ellipse wraps were silently dropped to a rectangular wrap whenever
   a vertical offset or vertical gap was set, or when the image had a caption.
 * Bounding box wrap: independent **Text-side gap**, **Gap above image**, and **
   Gap below image** controls.
 * The image now stays flush with the content column on its non-text side in all
   wrap modes.
 * Added the standard WordPress Typography panel to the block (font size, line height,
   appearance, letter spacing, letter case, decoration), using the theme’s own presets;
   it styles the caption text, which stays proportionally smaller than the chosen
   size.

#### 1.2.0

 * Removed the contour (silhouette) wrap shape. Rectangle, circle, and ellipse wraps
   remain.

#### 1.1.1

 * Removed the one-time rename migration now that its purpose is complete. No functional
   change.

#### 1.1.0

 * Added image captions, edited from the block sidebar and shown below the image.
   Body text wraps around the image and caption together.
 * Captions accept simple inline HTML (em, strong, a).
 * One-time content migration: posts published under the plugin’s former name are
   rewritten to the current block name, CSS class, and offset variable on update,
   so existing content keeps rendering and stays editable.

#### 1.0.0

 * Initial release.
 * Beside-text float (left/right) with content-width alignment.
 * Vertical offset (text flows above the image), vertical gap, and wrap offset controls.
 * Wrap shapes: rectangle, circle, ellipse, and alpha-channel contour.
 * Top & bottom (stacked) wrap mode.
 * Responsive: stacks full width below 600px.

## Meta

 *  Version **1.3.4**
 *  Last updated **3 enaku  ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/image-text-wrap/)
 * Tags
 * [block](https://lug.wordpress.org/plugins/tags/block/)[float](https://lug.wordpress.org/plugins/tags/float/)
   [image](https://lug.wordpress.org/plugins/tags/image/)[wrap text](https://lug.wordpress.org/plugins/tags/wrap-text/)
 *  [Advanced View](https://lug.wordpress.org/plugins/image-text-wrap/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/image-text-wrap/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/image-text-wrap/reviews/)

## Contributors

 *   [ cmtkennyb ](https://profiles.wordpress.org/cmtkennyb/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/image-text-wrap/)