Description
PFT – Widget Spacing Control adds margin-top / margin-bottom inputs (desktop and mobile, separately) to every widget’s settings form. Negative values are supported, so you can both expand and tighten the space between widgets without adding empty spacer widgets.
Features
- Per-widget top and bottom margin (px) for desktop and mobile
- Negative values supported (e.g.
-10to tighten the gap) - Empty value falls back to the theme default
- No settings page — inputs appear directly inside each widget’s form
- Works with any theme (sidebar / widget area)
- No external CSS file. No JavaScript. Single PHP file
- No tracking. No external requests
How priority is guaranteed
To make sure your margin settings always win over theme and other plugin CSS:
- A triple-ID selector (
#id#id#id) raises specificity to 0-3-0-0, beating typical theme selectors. !importantis added on every declaration as a second line of defense.- Styles are output via
wp_footerat priority 9999, so they load after all other styles.
Media queries are used to switch between desktop and mobile values cleanly (inline styles are intentionally avoided because inline !important would override @media rules).
Responsive breakpoints
- Desktop: 769px and above
- Mobile: 768px and below
Privacy
This plugin does not collect, store, or transmit any personal data. It only stores numeric margin values inside each widget’s settings.
Installation
- Upload the
widget-spacing-controlfolder to/wp-content/plugins/, or install via the Plugins screen in WordPress. - Activate the plugin through the Plugins screen.
- Go to Appearance Widgets. Each widget now has a “余白設定 (Spacing)” section at the bottom of its form.
- Enter values (positive or negative integers) for PC and/or mobile, then save the widget.
FAQ
-
Does it work with block-based widgets / Full Site Editing?
-
It targets the classic widget system that uses
in_widget_formanddynamic_sidebar_params. Block widgets in FSE themes are not the target use case. -
Will it conflict with my theme’s CSS?
-
No. The plugin uses inline styles, a high-specificity selector, and late-loaded
<style>output, so it overrides theme CSS in all common cases. -
Does it store any personal data?
-
No. The plugin only saves margin values (integers) in the widget instance options. No personal data is collected or transmitted.
-
Where are the settings saved?
-
Inside each widget’s instance settings (under WordPress’s standard
widget_*options), with keyswsc_mt_pc,wsc_mt_sp,wsc_mb_pc,wsc_mb_sp.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“PFT – Widget Spacing Control” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “PFT – Widget Spacing Control” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.2
- Refactor: CSS is now registered with
wp_register_style()/wp_enqueue_style()and attached viawp_add_inline_style()(instead of being echoed directly). - Refactor: CSS is precomputed during
wp_enqueue_scriptsby iterating widget instances, eliminating the priorwp_footerecho and the global variable used to accumulate styles. - Naming: all plugin functions now use the
pftwsc_prefix (Pifto Works WSC). - The
dynamic_sidebar_paramsfilter is now used only to injectid="{widget_id}"into widget HTML when the active theme does not provide one (so the precomputed selectors match).
1.2.1
- Fixed: mobile margin values were ignored because inline
!importantstyles overrode@mediarules. Inline style injection has been removed; styles are now applied exclusively via the#id#id#id !importantselector inside<style>, so PC and mobile values work independently as intended. - Security: footer style output is now run through
esc_html()to satisfy WordPress output-escaping standards. - Renamed plugin to “PFT – Widget Spacing Control” for clearer ownership.
1.2.0
- Added GPL license headers
- Added
Requires at least/Tested up toheaders - Escaped widget form field IDs and names with
esc_attr()
1.1.0
- Triple-ID selector with
!importantfor stronger CSS specificity - Output styles via
wp_footerat priority 9999
1.0.0
- Initial release
