=== Permalink Keeper ===
Contributors: nordichosting
Tags: permalinks, seo, maintenance, broken links, 404
Requires at least: 5.7
Tested up to: 6.9.4
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Automatically flushes WordPress rewrite rules at regular intervals. Prevents 404 errors and maintains SEO integrity by keeping your permalink structure up to date.

== Description ==

Permalink Keeper is a WordPress plugin that automatically flushes your rewrite rules at regular intervals. This prevents 404 errors and maintains SEO integrity by ensuring your permalink structure stays up to date.

= Why do you need this plugin? =

* Sites that frequently experience permalink issues after content updates
* Sites that have migrated content or changed permalink settings
* Sites with complex permalink structures that need regular rule refreshes
* Sites that need consistent URL structure for SEO

= Key Features =

* Automatically flushes rewrite rules (soft flush — no .htaccess rewrite)
* Prevents 404 errors caused by stale rewrite rules
* Configurable flush interval
* Debug logging via WP_DEBUG_LOG
* Status dashboard showing last run time
* Multilingual support (English, Norwegian, Dutch, German, French, Italian, Spanish)
* Minimal resource usage

== Installation ==

1. Upload the `permalink-keeper` folder to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Go to Settings -> Permalink Keeper to configure the flush interval

== Frequently Asked Questions ==

= How often should I flush the rewrite rules? =

For most sites, once per hour or once daily is sufficient. If you frequently publish new content or experience sporadic 404 errors, a shorter interval like every 15 or 30 minutes may help.

= Will this affect my site's performance? =

No. The plugin uses a soft flush (`flush_rewrite_rules(false)`) which only updates the rewrite rules in the database without touching `.htaccess`. It runs in the background via WP-Cron.

= Does the plugin support multilingualism? =

Yes, the plugin currently supports:
* English (en_US)
* Norwegian Bokmål (nb_NO)
* Dutch (nl_NL)
* German (de_DE)
* French (fr_FR)
* Italian (it_IT)
* Spanish (es_ES)

== Changelog ==

= 1.2.0 =
* Changed core logic to use `flush_rewrite_rules()` — safer and more correct approach
* Added `register_activation_hook` to set defaults and schedule cron on activation
* Removed batch processing, post type selection, and batch size settings
* Removed unnecessary DB query on every request (`init_settings` via `init` hook)
* Updated `Requires at least` to 5.7
* Tested up to WordPress 6.9.4

= 1.1.0 =
* Fixed deactivation hook not clearing the scheduled cron event
* Removed unused init() method
* Added debug logging via WP_DEBUG_LOG
* Added status dashboard on settings page
* Added support for all public post types with selectable checkboxes
* Added configurable batch size (10-500) for large sites
* Applied WordPress PHP Coding Standards
* Updated all translation files with new strings
* Tested up to WordPress 6.9.1

= 1.0.0 =
* Initial release
* Automatic permalink updates
* Configurable update interval
* Multilingual support

== Upgrade Notice ==

= 1.2.0 =
Core logic changed to flush rewrite rules instead of regenerating slugs. Simpler, safer, and more efficient. Batch processing and post type settings removed.

= 1.1.0 =
Bug fixes, batch processing for large sites, custom post type support, and status dashboard.

= 1.0.0 =
First release of Permalink Keeper. 