=== Sohaus Clean Emoji Slugs ===
Contributors: Sohaus
Tags: slug, emoji, permalink, url, seo
Requires at least: 5.8
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Removes emoji and special symbols from WordPress slugs while keeping them in post titles.

== Description ==

Sohaus Clean Emoji Slugs keeps WordPress permalinks clean when editors use emoji in post titles.

By default, WordPress may include emoji or encoded emoji characters in generated slugs. This plugin removes emoji, pictograms, dingbats, variation selectors and related characters from slugs while leaving the original title unchanged.

Example:

❤️ I love WordPress 🩸

Becomes:

i-love-wordpress

The plugin works automatically when a post, page or supported public post type is saved.

== Features ==

* Removes emoji from slugs.
* Cleans already encoded emoji in existing slugs when a post is saved, but does not bulk-update old posts automatically.
* Keeps emoji in post titles.
* Works on save and update.
* Supports posts and pages by default.
* Does not add database tables.
* Does not track users.
* Does not send any data to external services.

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/sohaus-clean-emoji-slugs` directory, or install the plugin through the WordPress plugins screen.
2. Activate the plugin through the "Plugins" screen in WordPress.
3. Edit or create a post with emoji in the title.
4. Save the post. The slug will be cleaned automatically.

== Frequently Asked Questions ==

= Does this remove emoji from post titles? =

No. The plugin only cleans the slug. The post title remains unchanged.

= Does this change old URLs automatically? =

No. Existing posts are cleaned when they are saved again. This avoids unexpected bulk URL changes.

= Will this create redirects? =

No. The plugin only changes the slug. If you change URLs for already published content, make sure redirects are handled by WordPress or by your SEO/redirection setup.

= Does this work with custom post types? =

The plugin can be adjusted to support custom post types. By default it is intended for all post types.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release.