=== Meindl Ordner ===
Contributors: meindlwebdesign
Tags: media library, folders, image optimization, alt text, webp
Requires at least: 5.9
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 3.4.1
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Media library folders, local WebP/AVIF image optimization, AI alt texts and a broken image link fixer – all in one lightweight plugin.

== Description ==

**Meindl Ordner** brings order to your WordPress media library and keeps your images fast, accessible and SEO-friendly. Everything runs inside your own WordPress – no account and no quota.

= 📁 Media folders =

* Unlimited folders with up to 3 levels of subfolders
* Drag & drop media into folders, move folders by long-press
* Bulk move selected media into a folder
* Uploads land directly in the folder that is currently open
* Works in the media library (grid and list), every media modal, the block editor, the Classic Editor and Elementor
* Rename files SEO-friendly – all image sizes are renamed and **links in your content are updated automatically** (old URLs redirect with 301)
* Allow extra file types such as SVG or Lottie/JSON

= ⚡ Image optimization (local, unlimited) =

* Resize large images to a maximum size – the aspect ratio is always kept, images are never upscaled or cropped
* Lossy or lossless compression with adjustable quality
* Convert to **WebP**, **AVIF**, PNG or JPEG
* Optimize automatically on upload, per image, for a selection or the whole library
* A file is only replaced when the result is really smaller
* Originals are backed up and can be restored at any time
* When the format changes, image links in posts, Elementor and widgets are updated and old URLs redirect with 301
* Runs on your server via Imagick or GD

= ✍️ AI alt texts =

* Generate **alt text, title, caption and description** with your own Claude (Anthropic) or OpenAI API key
* Per image, for a selection, for all images with missing texts or automatically on upload (in the background)
* One request fills all selected fields
* Choose language, maximum length and the keywords of your website – texts stay natural, no keyword stuffing
* "Fill with AI" button right inside the media modal

= 🔗 Broken image links =

* Scans your published pages and posts (including Elementor), widgets and the Customizer for images of your website whose file no longer exists
* Shows the page, the approximate position (top, middle, bottom) and the element – "Show on page" highlights the broken image
* Suggests the most likely replacement (same name, same upload month, uploaded to that page, same image size)
* Pick an alternative via quick search or straight from the media library
* Replaces all occurrences with one click – the matching image size is used automatically – and can add a 301 redirect

== External services ==

The optional AI alt text feature connects to a third-party AI service chosen by the site administrator. Nothing is sent unless an API key is saved and a text is generated (manually or via the "generate on upload" option).

What is sent: a downscaled copy of the image (max. 1024 px, JPEG), the file name, the title of the page the image is attached to and the optional website keywords from the settings. The API key is sent as authentication header.

* Anthropic (Claude) – https://api.anthropic.com – [Terms of Service](https://www.anthropic.com/legal/commercial-terms), [Privacy Policy](https://www.anthropic.com/legal/privacy)
* OpenAI – https://api.openai.com – [Terms of Use](https://openai.com/policies/terms-of-use), [Privacy Policy](https://openai.com/policies/privacy-policy)

All other features (folders, image optimization, broken link scan) work locally and do not contact any external service.

== More from the author ==

Meindl Ordner is developed by [Meindl Webdesign](https://meindl-webdesign.de).

* [AI Label 24](https://ai-label24.de) – label AI-generated content on your website
* [Meindl Cookies](https://meindl-cookies.de) – cookie consent for WordPress

== Installation ==

1. Install the plugin via Plugins → Add New, or upload the ZIP via Plugins → Add New → Upload Plugin
2. Activate the plugin
3. Open **Media → Library** – the folder sidebar appears on the left
4. Open **Media → Meindl Ordner** for image optimization, AI alt texts, broken image links and extra file types

== Frequently Asked Questions ==

= Do media files in subfolders also appear in the parent folder? =

No. Every folder only shows the media assigned to exactly this folder.

= Are files deleted when I delete a folder? =

No. Subfolders move up one level and media files stay untouched.

= Can I undo an image optimization? =

Yes, as long as "Back up originals" is enabled. Use "Restore original" per image, for a selection or for all images.

= Which server requirements does the image optimization have? =

Imagick or GD. WebP and AVIF are available if your server supports them – the plugin shows this on its dashboard.

= Do I need an account? =

No. Only the optional AI alt texts need an API key from Anthropic or OpenAI. Costs are billed by the provider to your own account.

= Is the broken image link fixer safe? =

Replacing writes directly to your database, so please create a backup first. Suggestions below 90 % should be checked with "Show on page" before replacing.

== Screenshots ==

1. Folder sidebar in the media library
2. Image optimization dashboard
3. AI alt texts with field selection
4. Broken image links with suggestions and position

== Changelog ==

= 3.4.1 =
* New logo files (transparent background)

= 3.4.0 =
* Internal identifiers renamed to match the new plugin name; existing folders, settings and backups are migrated automatically

= 3.3.0 =
* The plugin is now called Meindl Ordner (new name and logo). Folders, settings and backups are kept.

= 3.2.2 =
* Fix: bulk uploads with "optimize on upload" – optimization now waits until all uploads are finished

= 3.2.1 =
* The plugin page now lives under Media → Meindl Ordner
* Flags in the language switch

= 3.2.0 =
* Review fixes: styles and scripts are enqueued, dangerous file types can no longer be allowed, default menu position, English source strings

= 3.1.3 =
* Fix: uploading many images with "optimize on upload" no longer fails – optimization now runs in the background

= 3.1.2 =
* Fix: uploads reliably land in the open folder (also from the list view and when dropping files onto a folder)

= 3.1.0 =
* New: English interface with DE | EN switch (default follows your WordPress language)
* New: SVG uploads are sanitized (scripts, event handlers and external references removed)

= 3.0.6 =
* Design cleanup: one consistent palette, graded match badges, rounded inputs

= 3.0.5 =
* Unified colors: turquoise and warning pink only

= 3.0.4 =
* New tab icon for "AI alt texts"
* Plugin Check: remaining prepared-statement notices fixed
* English and German readme

= 3.0.3 =
* Broken image links: pick a replacement straight from the media library
* Better suggestions using upload month, parent page and image size

= 3.0.2 =
* Broken image links: only your own domain and published content, with page link, position and element plus "Show on page"
* Renaming a file now updates links in your content and adds a 301 redirect

= 3.0.0 =
* New: broken image link scanner with suggestions and one-click replacement
* New brand color

= 2.9.0 =
* Own admin menu entry with new logo

= 2.8.0 =
* All tools combined on one page with tabs

= 2.7.0 =
* New: AI alt texts (Claude or OpenAI), title, caption and description

= 2.6.0 =
* New: local image optimization (resize, lossy/lossless, WebP/AVIF/PNG/JPEG, backups, restore)

= 2.5.0 =
* New: settings for extra file types (SVG, Lottie/JSON)

= 2.0.0 =
* Folder sidebar in the native media library and in media modals

= 1.0.0 =
* Initial release

== Upgrade Notice ==

= 3.2.1 =
The plugin page moved to Media → Meindl Ordner. Old links are redirected automatically.
