=== Auto Linker Internal ===
Contributors:      Dario Fadda
Tags:              internal links, seo, categories, tags, automatic links
Requires at least: 5.6
Tested up to:      6.5
Requires PHP:      7.4
Stable tag:        1.0.0
License:           GPLv2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html

Automatically links category and tag keywords in post content to their WordPress archive pages.

== Description ==

Auto Linker Internal scans your post content and automatically turns any word (or phrase) that matches
a registered category or tag name into a hyperlink pointing to the corresponding archive page.

This improves internal linking for SEO and helps readers navigate related content without any manual
effort from the editor.

**Features**

* Automatically links category names and/or tag names found in post content.
* Configurable maximum number of links per post.
* "Link once per term" mode to avoid over-linking the same keyword.
* Skips text inside existing `<a>`, `<code>`, `<pre>`, `<script>`, `<style>` tags.
* Optional: skip H1–H6 headings.
* Optional: restrict processing to singular post views only.
* Choose which public post types are processed.
* Unicode-aware matching — works with accented characters (Italian, French, etc.).
* Longest-match-first algorithm — multi-word terms (e.g. "Web Design") are matched before
  their individual words (e.g. "Design").
* Exclude individual categories or tags via the settings page.
* Case-sensitive or case-insensitive matching.
* Option to open links in a new tab.
* Minimum keyword length threshold (avoids linking very short words).
* Term cache with automatic invalidation on taxonomy changes.
* Clean uninstall — removes all plugin data when deleted.

== Installation ==

1. Upload the `auto-linker-internal` folder to `/wp-content/plugins/`.
2. Activate the plugin from the **Plugins** screen in WordPress.
3. Go to **Settings › Auto Linker** to configure the plugin.

== Frequently Asked Questions ==

= Will this overwrite links I have manually added to posts? =

No. The plugin skips any text that is already inside an `<a>` tag, so existing links are never modified.

= Does it work with Gutenberg / the Block Editor? =

Yes. The plugin hooks into `the_content` filter, which applies to all content regardless of the editor used.

= The same keyword appears many times — will it be linked multiple times? =

By default the "Link once per term" option is enabled, so each term is linked only on its first occurrence
per post. You can disable this in the settings if you prefer to link every occurrence (subject to the
overall "Max links per post" limit).

= How does it handle accented characters (à, è, ü…)? =

The regex uses Unicode mode with a custom boundary pattern that recognises common Latin-extended
characters, so terms like "Caffè" or "Röntgen" are matched correctly.

== Screenshots ==

1. Settings page — General and Linking Behaviour sections.
2. Settings page — Excluded Terms section.
3. Example post content with auto-generated category and tag links.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
First public release.
