{"id":340617,"date":"2026-10-12T12:30:18","date_gmt":"2026-10-12T12:30:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/safeedit\/"},"modified":"2026-10-12T12:29:58","modified_gmt":"2026-10-12T12:29:58","slug":"safeedit","status":"publish","type":"plugin","link":"https:\/\/mri.wordpress.org\/plugins\/safeedit\/","author":23531989,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"SafeEdit","header_author":"Golden Lobster","header_description":"Safe, restricted frontend editing for WordPress. Let clients edit text and swap images inside defined zones without breaking layouts.","assets_banners_color":"dbe4f0","last_updated":"2026-10-12 12:29:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/safeedit.site","header_author_uri":"https:\/\/goldenlobster.ro\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"goldenlobster","date":"2026-10-12 12:29:58","revision":3741498}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3742422,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3742422,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3741498,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3742422,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3742422,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The frontend editing toolbar.","2":"Editable zones highlighted on a page.","3":"The admin settings screen.","4":"The per-page metabox with detected zones and backup status."}},"plugin_section":[],"plugin_tags":[286145,14439,14071,31174,6243],"plugin_category":[],"plugin_contributors":[286146],"plugin_business_model":[],"class_list":["post-340617","plugin","type-plugin","status-publish","hentry","plugin_tags-client-editing","plugin_tags-content-editing","plugin_tags-frontend-editing","plugin_tags-inline-editing","plugin_tags-revisions","plugin_contributors-goldenlobster","plugin_committers-goldenlobster"],"banners":{"banner":"https:\/\/ps.w.org\/safeedit\/assets\/banner-772x250.png?rev=3742422","banner_2x":"https:\/\/ps.w.org\/safeedit\/assets\/banner-1544x500.png?rev=3742422","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/safeedit\/assets\/icon.svg?rev=3741498","icon":"https:\/\/ps.w.org\/safeedit\/assets\/icon.svg?rev=3741498","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SafeEdit gives non-technical clients a safe, restricted editing interface for your pages and posts. Clients can only edit text content and swap images inside zones you define \u2014 they cannot break layouts, delete sections, touch code, or reach the WordPress admin.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>You mark editable areas with <code>data-safeedit=\"zone-name\"<\/code> attributes in your page HTML, or simply leave Auto-Content Detection on so the main content area becomes editable automatically.<\/li>\n<li>Your client logs in, opens any page, toggles SafeEdit ON, and edits text inline or swaps images through the WordPress Media Library.<\/li>\n<li>Changes are autosaved, and a backup snapshot is kept before each editing session so any change can be rolled back.<\/li>\n<\/ol>\n\n<p><strong>Key features<\/strong><\/p>\n\n<ul>\n<li>Safe text editing \u2014 clients edit only within defined zones; the surrounding HTML structure is locked.<\/li>\n<li>Image swapping \u2014 swap any image zone through the WordPress Media Library.<\/li>\n<li>Auto-Content Detection \u2014 make the main content area editable with no template changes.<\/li>\n<li>Automatic backups \u2014 a snapshot is taken before each session, with one-click \"Previous versions\" rollback from the frontend.<\/li>\n<li>SafeEdit Client role \u2014 a custom role that can only view the site and edit zones. It cannot access wp-admin, create posts, or change settings.<\/li>\n<li>Per-page control \u2014 enable or disable SafeEdit for each page from a metabox.<\/li>\n<li>Per-client page permissions \u2014 choose which SafeEdit Client users can edit each page; unrestricted pages remain editable by every authorized client.<\/li>\n<li>Paste protection \u2014 pasted content is stripped to safe markup (no script or HTML injection).<\/li>\n<li>Block editor ready \u2014 on block editor (Gutenberg) pages, paragraphs, headings, list items, and images become editable automatically, and every save preserves block delimiters and attributes.<\/li>\n<li>Server-side sanitization \u2014 all content is sanitized with WordPress's <code>wp_kses<\/code> before saving; off-site images and <code>javascript:<\/code> links are stripped.<\/li>\n<li>Rate limiting \u2014 save endpoints are rate limited to protect your server.<\/li>\n<li>No third-party calls \u2014 SafeEdit does not load fonts, scripts, or styles from external servers and does not phone home.<\/li>\n<\/ul>\n\n<p><strong>Custom client role<\/strong><\/p>\n\n<p>SafeEdit creates a \"SafeEdit Client\" role that can only view the frontend and edit SafeEdit zones. Clients are redirected away from wp-admin. They cannot create posts, change settings, install plugins, or do anything beyond editing the zones you allow.<\/p>\n\n<p><strong>Looking for more?<\/strong><\/p>\n\n<p>A separate premium version, SafeEdit Pro, adds Advanced Custom Fields (ACF) editing and WooCommerce product and price editing. All features included in this free plugin, including per-client page permissions, work without payment or a license key. The separately distributed Pro plugin is optional. See the \"Go Pro\" tab in the plugin settings for details.<\/p>\n\n<p>SafeEdit is developed by Golden Lobster (WordPress.org username <code>goldenlobster<\/code>). Product website: https:\/\/safeedit.site\/.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>safeedit<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin through the Plugins screen in WordPress.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu.<\/li>\n<li>(Optional) Add <code>data-safeedit=\"zone-name\"<\/code> attributes to editable areas in your page HTML. Or just leave Auto-Content Detection enabled under Settings \u2192 SafeEdit.<\/li>\n<li>Create a user with the \"SafeEdit Client\" role (Users \u2192 Add New) for your client.<\/li>\n<li>Your client visits any enabled page and uses the floating toolbar to edit text and images.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20modify%20my%20theme%3F\"><h3>Do I need to modify my theme?<\/h3><\/dt>\n<dd><p>No. With Auto-Content Detection (on by default) the main content area becomes editable automatically. For precise control you can add <code>data-safeedit=\"zone-name\"<\/code> attributes to specific elements in your page HTML or theme templates.<\/p><\/dd>\n<dt id=\"what%20can%20clients%20edit%3F\"><h3>What can clients edit?<\/h3><\/dt>\n<dd><p>Text content (headings, paragraphs, lists) and images (swapped through the Media Library). They cannot change HTML structure, CSS, JavaScript, or layout.<\/p><\/dd>\n<dt id=\"is%20it%20safe%3F\"><h3>Is it safe?<\/h3><\/dt>\n<dd><p>Yes. All saved content is sanitized with WordPress's <code>wp_kses<\/code> on the server. Clients cannot inject scripts, change HTML structure, hotlink off-site images, or upload disallowed file types. Save endpoints verify capabilities, the post type allowlist, and per-page enable flags, and are rate limited.<\/p><\/dd>\n<dt id=\"can%20i%20roll%20back%20a%20change%3F\"><h3>Can I roll back a change?<\/h3><\/dt>\n<dd><p>Yes. SafeEdit keeps a backup snapshot before each editing session. Clients can restore a previous version from the frontend \"Previous versions\" panel, and administrators can always revert from the standard WordPress revisions screen.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%3F\"><h3>Does it work with the block editor?<\/h3><\/dt>\n<dd><p>Yes. On pages built with the block editor, SafeEdit automatically makes paragraphs, headings, list items, and images editable, block by block. Saves go through the block parser, so block delimiters and attributes are always preserved and the page stays fully editable in wp-admin.<\/p><\/dd>\n<dt id=\"does%20it%20support%20page%20builders%3F\"><h3>Does it support page builders?<\/h3><\/dt>\n<dd><p>SafeEdit works with standard WordPress content and the block editor. It does not currently support proprietary page-builder content such as Elementor, Divi, or WPBakery.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multisite%3F\"><h3>Does it support multisite?<\/h3><\/dt>\n<dd><p>Yes.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release on WordPress.org.<\/li>\n<li>Frontend text editing and image swapping within defined zones.<\/li>\n<li>Auto-Content Detection for zero-config editing of the main content area.<\/li>\n<li>Custom \"SafeEdit Client\" role restricted to zone editing.<\/li>\n<li>Automatic pre-session backup snapshots with frontend rollback.<\/li>\n<li>Per-page enable\/disable metabox.<\/li>\n<li>Automatic per-block editing on block editor pages, with block-aware saving.<\/li>\n<li>Server-side sanitization, off-site image stripping, and rate limiting.<\/li>\n<\/ul>","raw_excerpt":"Safe, restricted frontend editing for WordPress. Let clients edit text and swap images inside defined zones without breaking layouts.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/340617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=340617"}],"author":[{"embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/goldenlobster"}],"wp:attachment":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=340617"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=340617"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=340617"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=340617"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=340617"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=340617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}