vera[tag]
Connect your WordPress site with vera[tag] to automatically synchronize and serve AI content disclosures to your website visitors.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/kladero/veratag-wordpress-plugin/archive/refs/heads/main.zipAI content disclosures, seamlessly connected to WordPress.
The official vera[tag] WordPress integration by Kladero GmbH.
Synchronize disclosure data from vera[tag], manage your integration in WordPress,
and deliver language-aware AI content disclosures to website visitors.
Explore vera[tag] · Get started · Build from source · How it works
![vera[tag] WordPress integration — product overview](https://raw.githubusercontent.com/kladero/veratag-wordpress-plugin/main/docs/images/veratag-wordpress-banner.png)
Disclosure data belongs in one place. Manage your AI content disclosures in the vera[tag] platform; let the WordPress integration take care of synchronization and delivery on your website.
At a glance
| Capability | Description |
|---|---|
| Centralized disclosure management | Connect a WordPress site to its corresponding vera[tag] channel. |
| Automatic synchronization | Periodically fetch current disclosure data from the platform. |
| Optional push updates | Receive authenticated changes from vera[tag] without waiting for the next scheduled pull. |
| Language-aware delivery | Use the site's preferred language or visitors' preferred languages, according to the configured mode and available disclosure translations. |
| Content visibility | Review synchronized content and disclosure-related issues in the WordPress admin. |
| Integrated administration | Manage connection settings, verification, synchronization, and disclosure status directly in WordPress. |
Explore the admin experience
![]() 01 — General Connection overview, channel information, and synchronization status. |
![]() 02 — Content Content overview, disclosure status, and render-script information. |
![]() 03 — Synchronization Latest pull and push activity, with status and diagnostics. |
![]() 04 — Settings API connection, domain verification, optional push, and language preferences. |
Getting started
Requirements
| For a WordPress installation | Requirement |
|---|---|
| WordPress | 6.5 or newer, as declared by the plugin header |
| PHP | 8.3 or newer |
| vera[tag] | A vera[tag] account, a corresponding channel, and an API key |
| Channel verification | Follow the domain-verification instructions in the vera[tag] platform |
Note: Node.js is not required on a WordPress server. It is needed only if you want to build the installable plugin ZIP from this source repository.
1. Install the plugin
If you have a ready-to-install vera[tag] plugin ZIP (for example, from an official distribution), open your WordPress dashboard and navigate to:
Plugins → Add New Plugin → Upload Plugin → Install Now → Activate
Cloned or downloaded this GitHub source instead? This repository is not laid out as a directly installable WordPress plugin. First build the release ZIP, then upload the generated ZIP using the steps above.
2. Connect your vera[tag] channel
- Open the vera[tag] menu in the WordPress admin.
- Follow the connection instructions in the vera[tag] platform to obtain the API key for your channel.
- Go to vera[tag] → Settings and save the API key.
- Complete domain verification as instructed by the platform. The plugin provides a verification-file configuration section for this purpose.
- Check General or Synchronization to confirm that the first pull synchronization succeeded.
3. Choose your synchronization setup
Pull synchronization is the standard connection mechanism. The plugin periodically checks the vera[tag] platform for updated disclosure data, and you can also start a pull manually from the admin interface.
For more immediate updates, you can optionally configure push synchronization in Settings. When enabled and configured, the platform can send authenticated updates to the WordPress REST endpoint exposed by the plugin. That endpoint needs to be reachable from the platform.
4. Configure disclosure language
Under Settings → Visitor Disclosure Language, choose how the plugin selects the disclosure language:
- Site-preferred: Use the WordPress site's primary language.
- Visitor-preferred: Consider the visitor's preferred language and the configured fallback.
A disclosure is served in a selected language only when the relevant disclosure configuration contains the necessary information in that language. If a synchronized content record is malformed or missing required identification fields, the plugin skips that record while still delivering valid disclosures on the same page.
5. Review the result
Use the Content page to review synchronized content and disclosure state. The plugin loads applicable disclosure data for the requested page and makes it available to its frontend rendering logic.
![Example of a vera[tag] disclosure displayed on a WordPress site](https://raw.githubusercontent.com/kladero/veratag-wordpress-plugin/main/docs/images/frontend-disclosure.png)
How it works
The WordPress plugin connects your website to the matching vera[tag] channel. Disclosure information is managed in the vera[tag] platform, synchronized into WordPress, and used to render the relevant disclosures for website visitors.
flowchart TD
A["vera[tag] platform<br/>Channel & disclosure configuration"]
B["Scheduled pull<br/>WordPress → vera[tag]"]
C["Optional authenticated push<br/>vera[tag] → WordPress"]
D["WordPress plugin<br/>Local disclosure storage"]
E["Page request<br/>Match content & language"]
F["Frontend renderer<br/>Visitor-facing disclosures"]
A --> B
A --> C
B --> D
C --> D
D --> E
E --> F
classDef platform fill:#002255,color:#fff,stroke:#002255;
classDef process fill:#F0F6FF,color:#002255,stroke:#99C2FF;
classDef output fill:#0066FF,color:#fff,stroke:#0066FF;
class A platform;
class B,C,D,E process;
class F output;
Behind the scenes:
- Connect — An administrator configures the channel API key and domain verification.
- Synchronize — A WordPress cron schedule periodically fetches disclosure data; an optional authenticated push endpoint accepts platform-originated changes.
- Store — The PHP persistence layer maintains local disclosure and synchronization records in WordPress database tables.
- Resolve — On a page request, the plugin selects applicable disclosure data and determines the language according to the configured mode.
- Render — The plugin loads the required frontend rendering script and supplies the applicable disclosure data to the page.
For further implementation detail, inspect src/php/Features/ and src/php/Persistence/.
Built for transparency
This repository contains the readable PHP implementation, the React/TypeScript admin UI source, the public release builder, and a version-locked npm dependency graph.
| What you can inspect | Where |
|---|---|
| WordPress bootstrap, hooks, and autoloading | src/php/Bootstrap/ |
| Synchronization, frontend delivery, and REST bridges | src/php/Features/ |
| Persistence and database schema | src/php/Persistence/ |
| Backend HTTP integration | src/php/VeraTagBackend/ |
| Settings and option models | src/php/Settings/ |
| React admin UI and styles | src/ui/admin/ |
| Public, standalone ZIP builder | scripts/build-zip-release.mjs |
| Third-party dependencies and licenses | package-lock.json · THIRD_PARTY_NOTICES.txt |
Security and service boundaries
- The plugin communicates with the configured vera[tag] backend using HTTPS via the WordPress HTTP API.
- WordPress admin REST operations use the standard authenticated WordPress admin context; the push receiver uses a separate credential check.
- The plugin can host a publicly reachable verification file so the platform can verify continued site control.
- The frontend rendering script is retrieved and synchronized by the plugin as part of serving disclosures.
- An active connection requires the external vera[tag] service. It is not a standalone disclosure-management platform.
Handling credentials: Never put real API keys, push secrets, verification tokens, or personal information in screenshots, GitHub issues, pull requests, or example configuration files.
For precise request behavior and data handling, consult the relevant PHP service classes. Before deploying, also review the applicable vera[tag] service terms and privacy documentation provided by Kladero GmbH.
Build from source
Want to verify the public source or create your own installable WordPress ZIP? The repository includes everything needed for the public release build.
Prerequisites
- Node.js 22.12.0 or newer, with npm
- An internet connection for the initial npm dependency installation
No Composer installation is required for this public build, and the installed WordPress plugin does not need Node.js.
Build commands
# Install the exact dependencies from package-lock.json
npm ci
# Optional: lint the React/TypeScript admin UI
npm run lint:ui
# Compile the admin UI and create the installable WordPress ZIP
npm run zip:release
Output
dist/
└── veratag-wordpress-plugin-release-<version>.zip
The command runs the TypeScript/Vite UI build and then the standalone ZIP packager at scripts/build-zip-release.mjs.
veratag-wordpress-plugin/
├── veratag-wordpress-plugin.php # WordPress plugin entry point
├── src/php/ # PHP implementation
├── assets/ # Compiled admin UI and runtime assets
├── LICENSE
├── TRADEMARKS.md
└── THIRD_PARTY_NOTICES.txt
The PHP entry point sits at the repository root and keeps that position in the plugin ZIP, so the source and installed layouts match. The release builder also takes the plugin version from package.json and stamps the plugin header.
npm ciinstalls dependency versions locked inpackage-lock.json.- The Node.js ZIP writer sorts entries, normalizes text line endings, and uses fixed ZIP timestamps, so identical packaged inputs yield identical ZIP bytes.
- Vite output can still vary with the Node/npm version, operating system, or toolchain environment. Match the original build environment when comparing release hashes.
- The checked-in compiled admin assets are reference outputs;
npm run zip:releaserebuilds them from the included source.
Repository map
.
├── assets/ # Static assets + compiled admin UI
├── src/
│ ├── php/ # Plugin implementation (PHP, PSR-4 classes)
│ │ ├── Bootstrap/
│ │ ├── Features/
│ │ ├── Persistence/
│ │ ├── Settings/
│ │ └── VeraTagBackend/
│ └── ui/admin/ # React + TypeScript + Vite
├── scripts/
│ └── build-zip-release.mjs # Standalone public release builder
├── package.json # Build scripts and plugin version
├── package-lock.json # Locked npm dependency graph
├── LICENSE
├── TRADEMARKS.md
└── THIRD_PARTY_NOTICES.txt
The PHP runtime uses its own PSR-4 autoloader. It does not require Composer on the WordPress host.
FAQ
Is a vera[tag] account required?Yes. The plugin connects a WordPress installation to a channel on the external vera[tag] platform. You need the relevant channel and API key to synchronize disclosures.
Do I need to enable push synchronization?No. Pull synchronization runs independently. Push synchronization is an optional mechanism for receiving platform changes more directly.
Can I install this GitHub source ZIP directly in WordPress?No. This is a source repository with its PHP entry point (veratag-wordpress-plugin.php) in the repository root. Run npm ci and npm run zip:release, then upload dist/veratag-wordpress-plugin-release-<version>.zip to WordPress.
No. Those are not runtime requirements for a site using the finished plugin. Node.js and npm are used only to build the release ZIP from source.
What happens if my plugin version is no longer supported?The admin UI includes a compatibility check against the vera[tag] backend. When the backend reports an unsupported version, the plugin shows an update-required screen instead of opening the normal admin pages.
Contributing and reporting issues
Source transparency is an important part of vera[tag]. You can inspect the implementation, reproduce the release build, and use this repository to discuss code-level issues or potential improvements.
For a useful report, include your WordPress and PHP versions, the vera[tag] plugin version, the affected admin page or feature, and steps to reproduce the problem. Redact all credentials and personal data.
Security issues: Please report suspected vulnerabilities privately to Kladero GmbH through the official company website, rather than publicly disclosing exploit details in an issue.
Licensing and trademarks
The WordPress plugin is published under the GNU General Public License, version 2 or later. See LICENSE for the complete license text.
Additional details:
THIRD_PARTY_NOTICES.txtlists relevant third-party components and their licenses.TRADEMARKS.mdexplains the trademark and branding status of vera[tag] and Kladero.- The plugin is an integration with the separately operated vera[tag] service. Publishing the plugin source does not mean that the service itself is part of this repository.
Content transparency, connected.
Developed and maintained by Kladero GmbH.
vera-tag.com
![vera[tag] General page showing the channel and connection overview](https://raw.githubusercontent.com/kladero/veratag-wordpress-plugin/main/docs/images/admin-general-page.png)
![vera[tag] Content page with synchronized content and disclosure information](https://raw.githubusercontent.com/kladero/veratag-wordpress-plugin/main/docs/images/admin-content-page.png)
![vera[tag] Synchronization page showing pull and push activity](https://raw.githubusercontent.com/kladero/veratag-wordpress-plugin/main/docs/images/admin-synchronization-page.png)
![vera[tag] Settings page with integration configuration](https://raw.githubusercontent.com/kladero/veratag-wordpress-plugin/main/docs/images/admin-settings-page.png)