{"id":346204,"date":"2026-08-03T08:18:19","date_gmt":"2026-08-03T08:18:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/url-pattern-replacer\/"},"modified":"2026-08-03T08:17:52","modified_gmt":"2026-08-03T08:17:52","slug":"geared-url-replacer","status":"publish","type":"plugin","link":"https:\/\/fa-af.wordpress.org\/plugins\/geared-url-replacer\/","author":20844167,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.2","requires":"6.8","requires_php":"8.0","requires_plugins":null,"header_name":"Geared URL Replacer","header_author":"WPGeared","header_description":"Preview and safely replace complete stored URLs that match a partial URL rule.","assets_banners_color":"0866b3","last_updated":"2026-08-03 08:17:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.wpgeared.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"wpgeared","date":"2026-08-03 08:17:52"}},"upgrade_notice":{"1.0.2":"<p>Renamed the plugin to Geared URL Replacer and updated the submission package. Create an independent database backup before applying replacements.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3632510,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3632510,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3632510,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3632510,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3632510,"resolution":"1","location":"assets","locale":"","width":1205,"height":738},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3632510,"resolution":"2","location":"assets","locale":"","width":1205,"height":738},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3632510,"resolution":"3","location":"assets","locale":"","width":1205,"height":738},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3632510,"resolution":"4","location":"assets","locale":"","width":1205,"height":738},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3632510,"resolution":"5","location":"assets","locale":"","width":1205,"height":738},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3632510,"resolution":"6","location":"assets","locale":"","width":1205,"height":738}},"screenshots":{"1":"The dashboard summarizes the protected workflow and retained rollback storage.","2":"The five-step wizard begins with a complete-URL match rule and generated examples.","3":"The mandatory dry-run report lists proposed changes and safety outcomes before Apply unlocks.","4":"Apply requires review, change, and independent-backup confirmations.","5":"Rollback restores only eligible values while preserving later edits.","6":"Settings control rollback retention, cleanup, and optional destructive uninstall."}},"plugin_section":[],"plugin_tags":[153,732,4155,12126,538],"plugin_category":[52,59],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-346204","plugin","type-plugin","status-publish","hentry","plugin_tags-database","plugin_tags-maintenance","plugin_tags-migration","plugin_tags-search-replace","plugin_tags-url","plugin_category-performance","plugin_category-utilities-and-tools","plugin_committers-wpgeared"],"banners":{"banner":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/banner-772x250.png?rev=3632510","banner_2x":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/banner-1544x500.png?rev=3632510","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/icon-128x128.png?rev=3632510","icon_2x":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/icon-256x256.png?rev=3632510","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/screenshot-1.png?rev=3632510","caption":"The dashboard summarizes the protected workflow and retained rollback storage."},{"src":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/screenshot-2.png?rev=3632510","caption":"The five-step wizard begins with a complete-URL match rule and generated examples."},{"src":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/screenshot-3.png?rev=3632510","caption":"The mandatory dry-run report lists proposed changes and safety outcomes before Apply unlocks."},{"src":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/screenshot-4.png?rev=3632510","caption":"Apply requires review, change, and independent-backup confirmations."},{"src":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/screenshot-5.png?rev=3632510","caption":"Rollback restores only eligible values while preserving later edits."},{"src":"https:\/\/ps.w.org\/geared-url-replacer\/assets\/screenshot-6.png?rev=3632510","caption":"Settings control rollback retention, cleanup, and optional destructive uninstall."}],"raw_content":"<!--section=description-->\n<p>Geared URL Replacer gives administrators a review-first workflow for changing stored URLs without running direct SQL replacements.<\/p>\n\n<p>Create a match rule, choose a replacement and scope, then run the mandatory dry run. The report shows proposed changes before the Apply step becomes available.<\/p>\n\n<h4>Safety-focused workflow<\/h4>\n\n<ul>\n<li>Matches complete URL values rather than arbitrary text fragments.<\/li>\n<li>Supports contains, starts with, ends with, exact URL, domain, and path rules.<\/li>\n<li>Filters internal, external, absolute, or relative URLs.<\/li>\n<li>Previews every supported change in a resumable dry run.<\/li>\n<li>Preserves HTML, block markup, JSON, and serialized PHP structures.<\/li>\n<li>Excludes protected fields such as GUIDs, credentials, sessions, caches, and plugin-owned data.<\/li>\n<li>Creates a protected rollback snapshot before each verified write.<\/li>\n<li>Restores only fields that still match the value written by the plugin, so later edits are preserved.<\/li>\n<li>Uses bounded, resumable batches for scanning, applying, and rolling back.<\/li>\n<\/ul>\n\n<h4>Supported locations<\/h4>\n\n<p>Default and optional scopes include posts, pages, public custom post types, post metadata, navigation menus, widgets, ordinary options, terms, comments, users, revisions, and explicitly selected safe custom tables.<\/p>\n\n<h4>Important backup notice<\/h4>\n\n<p>Rollback snapshots are recovery evidence for this plugin's changes. They are not a complete database backup. Create and verify an independent database backup before applying replacements or starting a rollback.<\/p>\n\n<h4>Accessibility<\/h4>\n\n<p>The administrator interface follows WordPress admin patterns, supports keyboard navigation, provides visible focus, associates labels with controls, and announces changing progress and status messages.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Geared URL Replacer processes site content locally and does not send content, URLs, reports, telemetry, or personal data to an external service.<\/p>\n\n<p>Dry-run reports and rollback snapshots can contain excerpts or original stored values. They are kept in protected plugin-owned database tables and are available only to administrators. Ordinary logs redact sensitive values.<\/p>\n\n<p>By default, rollback snapshots are retained for seven days and plugin data is preserved during uninstall. Administrators can choose one-day, seven-day, thirty-day, or manual retention; run cleanup; delete snapshots; delete completed job history; and explicitly opt into destructive uninstall.<\/p>\n\n<h3>Support<\/h3>\n\n<p>Use the WordPress.org support forum for setup questions and reproducible defects after the plugin is published. Include the WordPress, PHP, and plugin versions plus the visible error code.<\/p>\n\n<p>Do not post private URLs, credentials, nonces, cookies, database exports, protected report contents, or rollback snapshots in a public support topic. Report suspected security issues privately to the plugin owner.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>geared-url-replacer<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP from Plugins &gt; Add New.<\/li>\n<li>Activate Geared URL Replacer.<\/li>\n<li>Open Tools &gt; Geared URL Replacer.<\/li>\n<li>Create and verify an independent database backup.<\/li>\n<li>Build a rule, select the scope, and complete the mandatory dry run.<\/li>\n<li>Review the report before confirming Apply.<\/li>\n<\/ol>\n\n<p>Network activation is intentionally blocked. On multisite, activate the plugin separately on each site where it is needed.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20a%20dry%20run%20change%20my%20content%3F\"><h3>Does a dry run change my content?<\/h3><\/dt>\n<dd><p>No. A dry run reads eligible fields and stores a protected report in the plugin's own tables. It does not write to source content.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20replace%20arbitrary%20text%3F\"><h3>Does the plugin replace arbitrary text?<\/h3><\/dt>\n<dd><p>No. It conservatively identifies complete URL values. Ambiguous plain text and malformed structures are skipped or reported instead of being changed.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20a%20replacement%3F\"><h3>Can I undo a replacement?<\/h3><\/dt>\n<dd><p>The plugin stores a protected snapshot before each verified write. Rollback restores a field only when its current value still exactly matches the value written by the replacement. Later edits are left untouched and reported.<\/p><\/dd>\n<dt id=\"is%20rollback%20a%20substitute%20for%20a%20database%20backup%3F\"><h3>Is rollback a substitute for a database backup?<\/h3><\/dt>\n<dd><p>No. Always create and verify an independent database backup before applying or rolling back changes.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20site%20data%20to%20an%20external%20service%3F\"><h3>Does the plugin send site data to an external service?<\/h3><\/dt>\n<dd><p>No. Processing occurs on the WordPress site. The plugin does not call a remote service, load remote assets, track usage, or add advertising.<\/p><\/dd>\n<dt id=\"which%20users%20can%20run%20replacements%3F\"><h3>Which users can run replacements?<\/h3><\/dt>\n<dd><p>Only administrators with the <code>manage_options<\/code> capability can access the workflow and its protected reports.<\/p><\/dd>\n<dt id=\"why%20was%20a%20field%20skipped%3F\"><h3>Why was a field skipped?<\/h3><\/dt>\n<dd><p>The field may be protected, unsupported, malformed, changed after the dry run, or no longer match the reviewed proposal. The report records a privacy-safe reason.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Protected job, report, and rollback data is preserved by default. To remove it during uninstall, enable destructive uninstall in Settings before deleting the plugin. This choice is irreversible.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Renamed the plugin to Geared URL Replacer for the WordPress.org submission.<\/li>\n<li>Updated the public slug, text domain, namespaces, runtime prefixes, and listing assets.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Added complete-URL matching, structure-preserving transformation, mandatory dry-run reporting, guarded replacement, and hash-protected rollback.<\/li>\n<li>Added resumable batches, protected-field exclusions, privacy-safe exports, retention controls, and multisite per-site activation.<\/li>\n<li>Added distinctive author-prefixed namespaces, constants, options, hooks, database tables, REST identifiers, and browser assets.<\/li>\n<\/ul>","raw_excerpt":"Preview and safely replace complete stored URLs that match a partial URL rule.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=346204"}],"author":[{"embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpgeared"}],"wp:attachment":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346204"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346204"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346204"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346204"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346204"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}