=== EPA Blog IA ===
Contributors: elpuntoazul
Tags: ai, content, seo, blog, claude
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Draft, optimize for SEO and schedule your blog posts with Claude (Anthropic): a trend-based content calendar, review and one-click generation.

== Description ==

EPA Blog IA assists blog content creation in WordPress using the Claude
(Anthropic) API. The workflow is simple and always under your control:

1. **Generate a calendar.** Pick blog categories and how many ideas you want.
   The plugin queries current market trends in real time (Claude's built-in web
   search) and proposes article ideas with a title, angle, keywords, search
   intent and a short rationale for the trend.
2. **Review.** Approve or reject each proposal from the dashboard.
3. **Generate.** For each approved idea, the plugin writes an SEO-optimized
   article (title, slug, meta title, meta description, excerpt, HTML content with
   headings and tags), assigns a featured image and creates the post as a draft
   or scheduled, according to your settings.

Features:

* Selectable Claude model (Opus, Sonnet or Haiku).
* Per-batch article cap to keep API usage under control.
* Automatic scheduling through WordPress' built-in scheduled-post cron, with a
  configurable cadence (daily, weekly or every two weeks).
* Featured image with a selectable provider: Openverse (no API key), Pexels or
  Pixabay.
* Outputs its own meta description when no SEO plugin is active, and fills in the
  Yoast SEO fields when Yoast is installed.

= External services =

This plugin connects to third-party services. You must hold the relevant
credentials and accept each service's terms.

* **Claude (Anthropic).** Required to write content and to run the web search for
  trends. When you click "Generate calendar" or "Generate article", the plugin
  sends to https://api.anthropic.com the brand context you configure, the
  categories, the titles/keywords of the ideas and the writing instructions,
  together with your API key. Web search queries may run on Anthropic's servers.
  Terms: https://www.anthropic.com/legal/consumer-terms - Privacy: https://www.anthropic.com/legal/privacy
* **Openverse (WordPress.org).** Default image provider, no key required. The
  plugin sends the image search terms (derived from the article) to
  https://api.openverse.org to find an openly licensed photo. Terms:
  https://docs.openverse.org/terms_of_service.html - Privacy: https://wordpress.org/about/privacy/
* **Pexels (optional).** If you choose this provider, the plugin sends the search
  terms to https://api.pexels.com with your key. Terms:
  https://www.pexels.com/terms-of-service/ - Privacy: https://www.pexels.com/privacy-policy/
* **Pixabay (optional).** If you choose this provider, the plugin sends the search
  terms to https://pixabay.com/api/ with your key. Terms:
  https://pixabay.com/service/terms/ - Privacy: https://pixabay.com/service/privacy/

No data is sent to these services until you configure the keys and explicitly run
a generation action.

== Installation ==

1. Upload the `epa-blog-ia` folder to `/wp-content/plugins/` or install it from
   the Plugins screen.
2. Activate it.
3. Go to **Blog IA -> Settings** and enter your Anthropic API key, select the
   author user and the image provider (Openverse requires no key).
4. Open **Blog IA -> Dashboard**, generate a calendar, review the proposals and
   generate the articles.

== Frequently Asked Questions ==

= Do I need a paid key? =

Yes for writing: you need an Anthropic (Claude) API key, which is a pay-as-you-go
service. For images, Openverse is free and requires no key.

= Does it publish without my approval? =

No. Posts are created as drafts or scheduled according to your settings, and only
after you approve the proposals.

= Can I control spending? =

Yes. The "Articles per batch" setting limits how many ideas are generated per run,
and web searches are capped.

== Changelog ==

= 1.1.1 =
* New setting: the language the AI writes in. By default it follows the site language.
* The brand context now ships with a sample company instead of the author's own, so a fresh install is neutral.
* The whole admin interface is now translatable (text domain `epa-blog-ia`), with a .pot template in `languages/`.
* Settings and internal locks are removed when the plugin is uninstalled. Your ideas and posts are kept.

= 1.1.0 =
* The content calendar receives the existing articles and discards ideas that repeat a topic or primary keyword.
* Atomic lock per idea: a post can no longer be generated twice (double click, batch + button, network retry).
* Structured outputs for the article (always-valid JSON), clear error when the response is truncated.
* Claude Opus 5 and Sonnet 5 models; server-side fallback on Opus 5; correct web search tool for Haiku 4.5.
* Featured images of at least 1200 px when available; safe download (no internal IPs) capped at 10 MB; Openverse fallback.
* API keys are no longer printed in the settings page; all key fields are always visible.

= 1.0.0 =
* Initial release.
