{"id":261089,"date":"2025-11-24T09:52:20","date_gmt":"2025-11-24T09:52:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-alt-text-builder\/"},"modified":"2026-08-21T17:09:04","modified_gmt":"2026-08-21T17:09:04","slug":"ai-alt-text-builder","status":"publish","type":"plugin","link":"https:\/\/ro.wordpress.org\/plugins\/ai-alt-text-builder\/","author":23381469,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.16","stable_tag":"1.0.16","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"AI Alt Text Builder","header_author":"RankPilotAI","header_description":"One-click, SEO-friendly ALT text for Media Library images \u2014 with scoring, bulk generation, and language options.","assets_banners_color":"376653","last_updated":"2026-08-21 17:09:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/rankpilotai.com\/","header_author_uri":"https:\/\/rankpilotai.com","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1497,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"rankpilotai","date":"2025-11-24 12:47:15"},"1.0.1":{"tag":"1.0.1","author":"rankpilotai","date":"2025-11-26 23:39:43"},"1.0.10":{"tag":"1.0.10","author":"rankpilotai","date":"2026-05-21 12:12:39"},"1.0.11":{"tag":"1.0.11","author":"rankpilotai","date":"2026-06-10 19:55:01"},"1.0.12":{"tag":"1.0.12","author":"rankpilotai","date":"2026-06-26 11:55:31"},"1.0.13":{"tag":"1.0.13","author":"rankpilotai","date":"2026-07-10 19:53:24"},"1.0.14":{"tag":"1.0.14","author":"rankpilotai","date":"2026-08-03 20:47:33"},"1.0.15":{"tag":"1.0.15","author":"rankpilotai","date":"2026-08-21 15:52:42"},"1.0.16":{"tag":"1.0.16","author":"rankpilotai","date":"2026-08-21 17:09:04"},"1.0.2":{"tag":"1.0.2","author":"rankpilotai","date":"2025-11-27 00:06:33"},"1.0.3":{"tag":"1.0.3","author":"rankpilotai","date":"2025-12-08 12:02:11"},"1.0.4":{"tag":"1.0.4","author":"rankpilotai","date":"2025-12-17 12:41:46"},"1.0.5":{"tag":"1.0.5","author":"rankpilotai","date":"2026-01-03 00:23:41"},"1.0.6":{"tag":"1.0.6","author":"rankpilotai","date":"2026-01-16 14:56:55"},"1.0.7":{"tag":"1.0.7","author":"rankpilotai","date":"2026-02-16 01:18:52"},"1.0.8":{"tag":"1.0.8","author":"rankpilotai","date":"2026-03-09 00:00:21"},"1.0.9":{"tag":"1.0.9","author":"rankpilotai","date":"2026-04-24 01:15:44"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3403670,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3403670,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3514715,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3514715,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","1.0.15","1.0.16","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3401714,"resolution":"1","location":"assets","locale":"","width":1820,"height":1484},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3401714,"resolution":"2","location":"assets","locale":"","width":1824,"height":1476},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3401714,"resolution":"3","location":"assets","locale":"","width":1545,"height":1499},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3401714,"resolution":"4","location":"assets","locale":"","width":1768,"height":1335},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3401714,"resolution":"5","location":"assets","locale":"","width":2442,"height":1114},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3401714,"resolution":"6","location":"assets","locale":"","width":2370,"height":1059}},"screenshots":{"1":"Media modal with <strong>Generate with AI<\/strong>","2":"Attachment edit screen \u2014 button + score badge","3":"Settings \u2192 <strong>Site Key<\/strong> &amp; <strong>Usage Overview<\/strong>","4":"Settings \u2192 <strong>Alt-Text Language<\/strong> &amp; <strong>Model<\/strong>"}},"plugin_section":[],"plugin_tags":[1953,17214,163,233,186],"plugin_category":[34,50,55],"plugin_contributors":[250240],"plugin_business_model":[],"class_list":["post-261089","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-alt-text","plugin_tags-images","plugin_tags-media-library","plugin_tags-seo","plugin_category-accessibility","plugin_category-media","plugin_category-seo-and-marketing","plugin_contributors-rankpilotai","plugin_committers-rankpilotai"],"banners":{"banner":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/banner-772x250.png?rev=3514715","banner_2x":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/banner-1544x500.png?rev=3514715","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/icon-128x128.gif?rev=3403670","icon_2x":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/icon-256x256.gif?rev=3403670","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/screenshot-1.png?rev=3401714","caption":"Media modal with <strong>Generate with AI<\/strong>"},{"src":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/screenshot-2.png?rev=3401714","caption":"Attachment edit screen \u2014 button + score badge"},{"src":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/screenshot-3.png?rev=3401714","caption":"Settings \u2192 <strong>Site Key<\/strong> &amp; <strong>Usage Overview<\/strong>"},{"src":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/screenshot-4.png?rev=3401714","caption":"Settings \u2192 <strong>Alt-Text Language<\/strong> &amp; <strong>Model<\/strong>"},{"src":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/screenshot-5.png?rev=3401714","caption":""},{"src":"https:\/\/ps.w.org\/ai-alt-text-builder\/assets\/screenshot-6.png?rev=3401714","caption":""}],"raw_content":"<!--section=description-->\n<p>AI Alt Text Builder generates concise, descriptive ALT text for images in the Media Library.\nWorks immediately after install: start a free trial (25 tokens, no API key needed), use your own OpenAI API key for unlimited generations, or upgrade to Pro for bulk, auto-generate, and more.<\/p>\n\n<h3>Highlights<\/h3>\n\n<ul>\n<li><strong>Works instantly<\/strong> - no registration required, 25 free tokens on first use<\/li>\n<li><strong>BYOK mode<\/strong> - use your own OpenAI API key for unlimited single image generations<\/li>\n<li>One-click \u201cGenerate with AI\u201d button on Media Library items and the attachment edit screen<\/li>\n<li>Automatically saves to <code>_wp_attachment_image_alt<\/code><\/li>\n<li>Built-in ALT-length score badge (0-100) and a sortable Media Library column<\/li>\n<li><strong>Pro:<\/strong> Bulk generation, auto-generate on upload, all languages, all models, custom prompts<\/li>\n<li>Language selector (English, Deutsch, Francais, Espanol, Turkce, or custom)<\/li>\n<li>Model choice (GPT-4.1 Mini, GPT-4.1, GPT-4o)<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to RankPilotAI\u2019s API to generate ALT text and to fetch token status.<\/p>\n\n<h3>What is sent and when<\/h3>\n\n<ul>\n<li><strong>Trial mode:<\/strong> Site URL is sent to RankPilotAI for registration. Image URL is sent to RankPilotAI for processing.<\/li>\n<li><strong>BYOK mode:<\/strong> Image URL is sent directly to OpenAI's API using your own API key. Nothing is sent to RankPilotAI.<\/li>\n<li><strong>Pro mode:<\/strong> Image URL, file name, current ALT, selected model, language, site URL, domain, plugin slug, and Site Token are sent to RankPilotAI.<\/li>\n<li>On token-status checks in the settings page (Pro mode only): Site Token, site URL and domain.<\/li>\n<\/ul>\n\n<h3>Why it is sent<\/h3>\n\n<ul>\n<li>To generate the requested ALT text and return it to your Media Library item<\/li>\n<li>To authorize usage and show your remaining balance (Pro mode)<\/li>\n<li>To register and track trial token usage (Trial mode)<\/li>\n<\/ul>\n\n<h3>Endpoints<\/h3>\n\n<ul>\n<li>https:\/\/rankpilotai.com\/wp-json\/rankpilotai\/v1\/alt-text (Pro)<\/li>\n<li>https:\/\/rankpilotai.com\/wp-json\/rankpilotai\/v1\/alt-batch (Pro bulk)<\/li>\n<li>https:\/\/rankpilotai.com\/wp-json\/rankpilotai\/v1\/token-info (Pro)<\/li>\n<li>https:\/\/rankpilotai.com\/wp-json\/rankpilotai\/v1\/trial-register (Trial)<\/li>\n<li>https:\/\/rankpilotai.com\/wp-json\/rankpilotai\/v1\/trial-alt (Trial)<\/li>\n<li>https:\/\/api.openai.com\/v1\/chat\/completions (BYOK - direct to OpenAI)<\/li>\n<\/ul>\n\n<h3>Providers<\/h3>\n\n<ul>\n<li>RankPilotAI (Terms: https:\/\/rankpilotai.com\/terms-and-conditions, Privacy: https:\/\/rankpilotai.com\/privacy-policy)<\/li>\n<li>OpenAI (BYOK mode only - Terms: https:\/\/openai.com\/policies\/terms-of-use, Privacy: https:\/\/openai.com\/policies\/privacy-policy)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload and activate the plugin.<\/li>\n<li>Go to <strong>AI Alt Text Builder<\/strong> in the admin menu.<\/li>\n<li>Choose your mode:\n\n<ul>\n<li><strong>Free Trial<\/strong> - Click \"Start Free Trial\" for 25 free tokens (no registration needed)<\/li>\n<li><strong>Own API Key<\/strong> - Enter your OpenAI API key for unlimited single image generations<\/li>\n<li><strong>Pro<\/strong> - Enter your RankPilotAI Site Key for full features<\/li>\n<\/ul><\/li>\n<li>Open <strong>Media \u2192 Library<\/strong> or an <strong>attachment<\/strong> and click <strong>Generate with AI<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20register%20or%20create%20an%20account%3F\"><h3>Do I need to register or create an account?<\/h3><\/dt>\n<dd><p>No. The free trial starts instantly with one click. For BYOK mode, just paste your OpenAI API key.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20plan%3F\"><h3>Is there a free plan?<\/h3><\/dt>\n<dd><p>Yes. 25 free tokens are included. After that, use your own OpenAI API key (unlimited, free) or upgrade to Pro.<\/p><\/dd>\n<dt id=\"does%20it%20overwrite%20my%20existing%20alt%20texts%3F\"><h3>Does it overwrite my existing ALT texts?<\/h3><\/dt>\n<dd><p>Only when you click <strong>Generate<\/strong> for a given image (or run a bulk action). It writes to WordPress\u2019 standard <code>_wp_attachment_image_alt<\/code> field.<\/p><\/dd>\n<dt id=\"what%20languages%20are%20supported%3F\"><h3>What languages are supported?<\/h3><\/dt>\n<dd><p>English, German, French, Spanish, Turkish \u2014 plus <strong>Other\/Custom<\/strong>. Enter any language name and we\u2019ll pass it to the generator.<\/p><\/dd>\n<dt id=\"will%20it%20change%20image%20file%20names%20or%20titles%3F\"><h3>Will it change image file names or titles?<\/h3><\/dt>\n<dd><p>No. It only sets the ALT text and stores a score <code>_aatb_score<\/code> meta (for the badge\/column).<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20other%20media%2Fseo%20plugins%3F\"><h3>Does it work with other media\/SEO plugins?<\/h3><\/dt>\n<dd><p>Yes. ALT text is a core WordPress field, so other plugins and themes will read it normally.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Fix: removed a PHP warning (\"Undefined array key\") that the plugin raised every time WordPress built the attachment fields, which is on every media modal open. WordPress does not define an <code>html<\/code> key for the alternative text field, and the plugin appended to it without checking. On sites that display PHP notices, the warning could leak into the media modal response.<\/li>\n<li>Hardening: if the trial API returns a structured error object instead of a string, the request no longer ends in a fatal error; the message is shown to you instead.<\/li>\n<li>Maintenance: the plugin now passes the official WordPress Plugin Check with zero errors. This covers output escaping, translator comments on every placeholder string, wp_parse_url(), and prepared uninstall queries. Where a check does not apply, the exemption is documented inline with its reason rather than left silent.<\/li>\n<li>Compatibility: verified on a real WordPress 7.1 install, including the Media Library list table, the media modal and the post editor.<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>NEW: the Alt Score column in the Media Library is now sortable, as the description has always claimed. Empty ALT text sorts as 0, matching the badge.<\/li>\n<li>Fix: the \"Generate with AI\" button inside the media modal no longer appears without the script that powers it. The button used to render on any screen that opens the modal, while its JavaScript only loaded on the Media Library and attachment screens, so clicking it did nothing.<\/li>\n<li>Fix: files the vision models cannot read (SVG, HEIC, AVIF and similar) are now rejected up front with a clear message instead of consuming a token on a request that was going to fail. WordPress 7.1 lets the browser convert and generate files before upload, so the Media Library can hold more formats than before.<\/li>\n<li>Hardening: request values are unslashed before sanitizing, and the uninstall cleanup query is now prepared with esc_like().<\/li>\n<li>Compatibility: tested with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Maintenance: added the missing \"Plugin URI\" header and translated remaining inline code comments to English.<\/li>\n<li>Compatibility: re-verified with WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Maintenance: routine housekeeping, minor code cleanup and performance tuning. No functional changes.<\/li>\n<li>Compatibility: re-verified with WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Maintenance: minor polish, code cleanup and stability improvements. No functional changes.<\/li>\n<li>Compatibility: re-verified with WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Maintenance: internal code cleanup and stability improvements. No functional changes.<\/li>\n<li>Compatibility: re-verified with WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Compatibility: tested up to WordPress 7.0.<\/li>\n<li>Maintenance: minor housekeeping and copy cleanup. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>NEW: Three-mode system - Trial (25 free tokens), BYOK (your own OpenAI key), Pro (RankPilotAI).<\/li>\n<li>NEW: Plugin works immediately after install with zero-friction free trial.<\/li>\n<li>NEW: BYOK mode - unlimited single image generations using your own OpenAI API key.<\/li>\n<li>NEW: Auto-generate alt text on image upload (Pro feature).<\/li>\n<li>NEW: Redesigned settings page with mode selection, feature comparison table, and Pro feature indicators.<\/li>\n<li>Bulk generation and auto-generate are now Pro-only features.<\/li>\n<li>Score badge and column hidden in BYOK mode.<\/li>\n<li>Language and model selection locked to English\/Mini in Trial and BYOK modes.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Updated default AI model from GPT-4o-mini to GPT-4.1 Mini for improved quality and performance.<\/li>\n<li>Backward compatibility maintained \u2014 existing GPT-4o-mini selections are automatically migrated.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>UI: Redesigned settings page with modern card-based layout, gradient header, improved navigation and responsive design.<\/li>\n<li>UI: Settings header now displays the official AI Alt Text Builder logo.<\/li>\n<li>UI: Modernized admin CSS for generate button and score badges.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Maintenance: minor version consistency updates and small documentation\/copy cleanup. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Maintenance: minor version consistency updates and small documentation\/copy cleanup. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Tested up to WordPress 6.9.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>New installs start with an empty Site Key field instead of a random generated key.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Tweak: removed extra \u201cView details\u201d link on the Plugins screen and synced short description. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Tweak: Updated short description and plugin listing copy. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release: one-click ALT generation + \u201cAlt Score\u201d badge.<\/li>\n<li>Normalized usage overview: Remaining = Plan Limit \u2212 Global Usage (matches RankPilotAI account dashboard).<\/li>\n<li>Language selector and prompt improvements.<\/li>\n<li>New settings UI, bulk actions polish and sortable \u201cAlt Score\u201d column.<\/li>\n<li>Stability and compatibility tweaks on admin screens.<\/li>\n<\/ul>","raw_excerpt":"Generate SEO-friendly ALT text for your images. Free forever with your own OpenAI API key, or start with 25 free tokens.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=261089"}],"author":[{"embeddable":true,"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rankpilotai"}],"wp:attachment":[{"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261089"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261089"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261089"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261089"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261089"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ro.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}