=== scinet Glossary ===
Contributors: scinet
Donate link: https://www.scinet.eu/danke-sagen/
Tags: glossary, lexicon, defined term, faq, schema
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Adds a glossary with topics, short definitions, FAQs, accessible fallback templates and structured data.

== Description ==

scinet Glossary provides a public glossary post type, a topic taxonomy and the
`[scinet_glossar]` shortcode. Editors can maintain a short definition and up to
three visible frequently asked questions for every glossary entry.

The plugin supplies theme-independent fallback templates and styles. Themes may
override them with `single-glossar.php` and `page-glossar.php`.

English is the default plugin language. A reviewed German translation is
bundled for direct ZIP installations.

Structured data is added as `DefinedTerm`, `FAQPage` and `ItemList`. Search
engines decide independently whether and how they use this data.

All plugin features are free to use. There are no paid unlocks, license keys,
trial periods or usage limits. If the plugin is useful to you, you can
voluntarily [say DANKE](https://www.scinet.eu/danke-sagen/). Supporting the
development has no effect on features, updates or regular use.

= Privacy and external services =

The plugin does not automatically contact external services, load remote
assets, use cookies or implement telemetry. Glossary content and metadata are
stored exclusively in the site's WordPress database. The optional DANKE link is
a normal external link; the external website is contacted only after an
intentional click. No payment widget, iframe, script, image or tracker is
embedded by the plugin.

== Installation ==

1. Upload the `scinet-glossary` directory to `/wp-content/plugins/` or install a release ZIP.
2. Activate "scinet Glossary" in the WordPress plugin screen.
3. Create a published page whose slug is `glossar` to use the supplied index template.
4. Add and publish glossary terms under "Glossary" ("Glossar" in German).

The index page slug can be changed with the `scinet_glossary_index_page_slug`
filter. The shortcode may be placed on any page and accepts an optional topic
slug, for example `[scinet_glossar thema="seo"]`.

== Frequently Asked Questions ==

= Does uninstalling the plugin delete glossary entries? =

No. Deactivation and uninstallation intentionally retain glossary entries,
topics and their metadata. This prevents accidental editorial data loss.

= Does the plugin send data to another service? =

No. It has no automatic external service integration. The optional DANKE link
opens an external website only when you intentionally click it.

= Can a theme override the plugin templates? =

Yes. Add `single-glossar.php` or `page-glossar.php` to the active theme.

= Are FAQ rich results guaranteed? =

No. The plugin emits valid structured data for visible FAQ content, but search
engines determine eligibility and presentation.

= Are password-protected glossary terms respected? =

Yes. Short definitions, FAQs and their structured data are not exposed until
the WordPress post password has been entered. Protected metadata is also
restricted to the authenticated REST edit context.

== Changelog ==

= 1.2.4 =

* Include the complete canonical GPL license text and verify its integrity during release builds.

= 1.2.3 =

* Restored keyboard focus to the Add Question button after removing a FAQ at the three-question limit.

= 1.2.2 =

* Applied GPL-2.0-or-later consistently and included the complete license text.
* Corrected release instructions and completed additional installation, theme and multisite checks.

= 1.2.1 =

* Updated the plugin author and copyright metadata to the confirmed current publisher name.
* Added release checks that reject obsolete personal-name variants in current source and package files.

= 1.2.0 =

* Prevented short definitions, FAQs and structured data from leaking from password-protected terms.
* Restricted glossary metadata in REST responses to the authenticated edit context.
* Added English source strings plus complete German POT, PO and MO catalogs.
* Prevented duplicate output when the glossary index page contains the shortcode.
* Added a visible empty-state message for shortcode results.
* Processed network activation and deactivation in bounded batches.
* Initialized rewrite rules for sites created after network activation.
* Limited FAQ editor assets to glossary edit screens and improved browser compatibility.
* Added licensing inventory and expanded release, lifecycle and package verification.

= 1.1.0 =

* Corrected activation and deactivation rewrite handling.
* Registered typed, REST-accessible and revision-enabled glossary metadata.
* Hardened nonce checks, input validation, sanitization and output escaping.
* Added accessible FAQ controls with a maximum of three entries.
* Removed inline admin JavaScript and theme/Bootstrap dependencies.
* Added independent, theme-compatible frontend and admin styles.
* Ensured FAQ content remains visible when FAQ structured data is emitted.
* Improved Unicode alphabet grouping and empty-result handling.
* Added extension filters, release documentation and smoke tests.
* Internationalized all user-facing PHP strings.

= 1.0.0 =

* Initial private version.

== Upgrade Notice ==

= 1.2.4 =
Complete license documentation; runtime behavior is unchanged from 1.2.3.

= 1.2.3 =

This accessibility fix preserves glossary content and metadata.

= 1.2.2 =

This licensing and release-verification update preserves existing glossary content and metadata.

= 1.2.1 =

This metadata correction does not change glossary content, settings or runtime behavior.

= 1.2.0 =

This security and compatibility update preserves all existing glossary posts,
topics and metadata. Network installations should update to ensure newly
created sites receive glossary rewrite rules.

= 1.1.0 =

This update preserves existing glossary posts and metadata. After updating,
activate the plugin normally; rewrite rules are refreshed automatically.
