{"id":362360,"date":"2026-09-10T17:23:18","date_gmt":"2026-09-10T17:23:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/scorecontent-ai-writer\/"},"modified":"2026-09-10T17:22:55","modified_gmt":"2026-09-10T17:22:55","slug":"scorecontent-ai-writer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/scorecontent-ai-writer\/","author":23558754,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.2","stable_tag":"1.1.2","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"ScoreContent AI Writer","header_author":"Morteza Riahi","header_description":"Generate human-sounding, SEO-scored articles with OpenAI or Claude. Full control over length, links, images, tone and publishing schedule \u2014 every draft is scored with the ScoreContent engine before it reaches your blog.","assets_banners_color":"","last_updated":"2026-09-10 17:22:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/scorecontent.com\/wordpress-plugin\/","header_author_uri":"https:\/\/scorecontent.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.2":{"tag":"1.1.2","author":"scorecontent","date":"2026-09-10 17:22:55","revision":3690259}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3690259,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3690259,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The brief: topic, keyword, shape, links and images on one screen.","2":"Live progress as the article is planned, written, illustrated and scored.","3":"The score report \u2014 human, SEO, grammar, spelling, plus every signal.","4":"Scheduling a run of articles from a list of topics.","5":"Settings: provider, live model picker, humanization target."}},"plugin_section":[],"plugin_tags":[2353,229563,529,194533,186],"plugin_category":[55],"plugin_contributors":[280128],"plugin_business_model":[],"class_list":["post-362360","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-claude","plugin_tags-content","plugin_tags-openai","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-scorecontent","plugin_committers-scorecontent"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/scorecontent-ai-writer\/assets\/icon-128x128.png?rev=3690259","icon_2x":"https:\/\/ps.w.org\/scorecontent-ai-writer\/assets\/icon-256x256.png?rev=3690259","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>ScoreContent AI Writer plans, writes, illustrates, links, scores and files a complete article without leaving WordPress.<\/p>\n\n<p>It uses <strong>your<\/strong> API key and your quota. There is no subscription, no relay server, and nothing is sent to scorecontent.com \u2014 the scoring engine ships inside the plugin and runs on your own host.<\/p>\n\n<p><strong>What makes it different<\/strong><\/p>\n\n<p>Most AI writing plugins hand the model a topic and paste back whatever comes out. This one closes the loop:<\/p>\n\n<ul>\n<li>Every draft is scored with the ScoreContent engine \u2014 the same signals as the editor at scorecontent.com: sentence-rhythm variance, contraction rate, AI phrase detection, active voice, specificity, vocabulary richness, keyword placement, Flesch readability, heading structure and more.<\/li>\n<li>If the human score lands below your target, the article is rewritten <strong>against the exact findings the scorer produced<\/strong>, then re-scored.<\/li>\n<li>The writing rules sent to the model are derived from what the scorer measures, so the first draft is already aiming at the right target.<\/li>\n<\/ul>\n\n<p><strong>Never the same article twice<\/strong><\/p>\n\n<p>Every run draws a seed. The seed picks a writer persona, an opening move, a sentence-rhythm rule, structural constraints and a rotating set of banned phrases. Two runs on the same topic produce genuinely different articles \u2014 not the same skeleton with synonyms.<\/p>\n\n<p><strong>You choose everything<\/strong><\/p>\n\n<ul>\n<li>Provider: OpenAI or Anthropic (Claude), with a live model picker pulled from your own account.<\/li>\n<li>Model, effort level, reasoning on or off.<\/li>\n<li>Length, article type (how-to, listicle, comparison, review, case study, FAQ, opinion, news), tone, point of view, audience, brand voice.<\/li>\n<li>Language \u2014 15 output languages. The admin UI is fully internationalized, supports automatic RTL layout, and is ready for WordPress.org language packs.<\/li>\n<li>Internal links, chosen from your own published posts by keyword match. Never invented.<\/li>\n<li>Outbound links: off, your own list, or authoritative suggestions \u2014 every suggested URL is verified with a real HTTP request before it goes in.<\/li>\n<li>Images: how many, featured image or not, ten art-direction presets, model, size, quality, captions, and alt text written in your output language.<\/li>\n<li>Table of contents, key takeaways box, FAQ section with FAQPage schema, comparison tables, lists.<\/li>\n<li>Save as draft, submit for review, publish now, or schedule for a date and time.<\/li>\n<\/ul>\n\n<p><strong>Schedule a whole run<\/strong><\/p>\n\n<p>Paste a list of topics, pick a start time and a gap \u2014 hourly through weekly. Each article gets its own job, its own prompt seed and its own publish time. Failed runs keep everything they already wrote, so a retry resumes instead of paying for the same tokens twice.<\/p>\n\n<p><strong>Built for editors, not just for volume<\/strong><\/p>\n\n<ul>\n<li>Full score report on every article, in the run panel and in the post editor sidebar.<\/li>\n<li>Score any existing post, generated or not.<\/li>\n<li>Token counts and estimated spend per run.<\/li>\n<li>\"See the exact prompt\" shows you the complete system prompt before you spend anything.<\/li>\n<li>SEO metadata written into Yoast, Rank Math and SEOPress fields automatically.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin does nothing until you explicitly enable external-service consent and connect an AI provider with your own API key. When you do, it sends data to that provider on your behalf. Consent is off by default and can be withdrawn from Settings at any time; every request checks its current value, including scheduled jobs. Nothing is ever sent to scorecontent.com \u2014 the scoring engine is bundled with the plugin and runs on your own server. The plugin contains no telemetry, no analytics and no phone-home of any kind.<\/p>\n\n<p>This release supports WordPress 6.0 and later, so it uses the providers' documented HTTP APIs directly rather than requiring the WordPress 7.0 AI Client. It does not bundle a provider SDK or relay requests through another server.<\/p>\n\n<p><strong>Anthropic (Claude)<\/strong> \u2014 used to write articles when you select a Claude model.<\/p>\n\n<ul>\n<li>What is sent: your topic, focus keyword, brief, brand-voice notes, the outline, and the article text as it is being written and revised.<\/li>\n<li>When: only after external-service consent is enabled, while a generation job you started is running (including a scheduled job you created), and when you press \"Load models\" or \"Test\" on the settings screen.<\/li>\n<li>Endpoints: <code>https:\/\/api.anthropic.com\/v1\/messages<\/code> and <code>https:\/\/api.anthropic.com\/v1\/models<\/code><\/li>\n<li>Terms: https:\/\/www.anthropic.com\/legal\/consumer-terms \u2014 Privacy policy: https:\/\/www.anthropic.com\/legal\/privacy<\/li>\n<\/ul>\n\n<p><strong>OpenAI<\/strong> \u2014 used to write articles when you select a GPT model, and to generate images for any article regardless of which provider writes the text.<\/p>\n\n<ul>\n<li>What is sent: the same article data as above for text generation; for images, the scene description taken from the outline plus your chosen art-direction preset.<\/li>\n<li>When: only after external-service consent is enabled, while a generation job you started is running (including a scheduled job you created), and when you press \"Load models\" or \"Test\" on the settings screen.<\/li>\n<li>Endpoints: <code>https:\/\/api.openai.com\/v1\/chat\/completions<\/code>, <code>https:\/\/api.openai.com\/v1\/images\/generations<\/code> and <code>https:\/\/api.openai.com\/v1\/models<\/code><\/li>\n<li>Terms: https:\/\/openai.com\/policies\/row-terms-of-use\/ \u2014 Privacy policy: https:\/\/openai.com\/policies\/row-privacy-policy\/<\/li>\n<\/ul>\n\n<p><strong>Outbound link verification<\/strong> \u2014 when you set outbound links to \"Suggest authoritative sources\", the plugin sends an HTTP HEAD request to each suggested URL to confirm the page exists before it is placed in your article. No personal data is sent; this is an ordinary request to a public page, and the destinations vary by article topic.<\/p>\n\n<p><strong>Optional support email<\/strong> \u2014 the Support screen can send a message to <code>info@scorecontent.com<\/code> through your site's normal WordPress email configuration.<\/p>\n\n<ul>\n<li>What is sent: only the reply email, subject and message entered by the user, plus the plugin version.<\/li>\n<li>When: only after a logged-in user deliberately presses \"Send message\".<\/li>\n<li>Destination: <code>info@scorecontent.com<\/code>. No API keys, drafts, generated articles or site diagnostics are included.<\/li>\n<\/ul>\n\n<p>You must explicitly enable external-service consent on the plugin's welcome or Settings screen before any provider request is possible. Generation is disabled until you do. Withdrawing consent blocks interactive requests and stops queued jobs before they contact a provider.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip through Plugins \u2192 Add New \u2192 Upload.<\/li>\n<li>Activate it. You land on a welcome screen with the privacy terms.<\/li>\n<li>Go to ScoreContent AI \u2192 Settings and paste an OpenAI or Anthropic API key.<\/li>\n<li>Press \"Load models\" to fill the picker with what your account can actually use.<\/li>\n<li>Go to ScoreContent AI \u2192 Write.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20subscription%3F\"><h3>Do I need a subscription?<\/h3><\/dt>\n<dd><p>No. The plugin is free and talks directly to whichever provider you connect, using your own key and your own quota.<\/p><\/dd>\n<dt id=\"where%20do%20my%20api%20keys%20live%3F\"><h3>Where do my API keys live?<\/h3><\/dt>\n<dd><p>In your WordPress options table, obfuscated with your site's salts. That is not encryption \u2014 anyone with database and filesystem access could recover them, the same as with any plugin that has to send a key upstream. Use a key scoped to this site and rotate it if the site changes hands.<\/p><\/dd>\n<dt id=\"does%20anything%20get%20sent%20to%20scorecontent.com%3F\"><h3>Does anything get sent to scorecontent.com?<\/h3><\/dt>\n<dd><p>No. The scoring engine is a PHP port bundled with the plugin. Your content goes to your chosen AI provider and nowhere else.<\/p><\/dd>\n<dt id=\"can%20i%20use%20claude%20for%20writing%20and%20still%20get%20images%3F\"><h3>Can I use Claude for writing and still get images?<\/h3><\/dt>\n<dd><p>Yes. Image generation runs through OpenAI regardless of which model writes the text, so add an OpenAI key too \u2014 or switch images off.<\/p><\/dd>\n<dt id=\"will%20google%20penalise%20this%20content%3F\"><h3>Will Google penalise this content?<\/h3><\/dt>\n<dd><p>Google does not penalise AI-assisted content by itself; it penalises unhelpful content. That is what the score report is for. Review every draft, check the facts and the links, and add what only you know.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wp-cron%20disabled%3F\"><h3>Does it work with WP-Cron disabled?<\/h3><\/dt>\n<dd><p>Scheduled runs need WP-Cron or a real system cron hitting wp-cron.php. Without one, use \"Run now\" on each queued job \u2014 the queue screen warns you when it detects DISABLE_WP_CRON.<\/p><\/dd>\n<dt id=\"will%20existing%20installations%20receive%20update%20notices%3F\"><h3>Will existing installations receive update notices?<\/h3><\/dt>\n<dd><p>Yes. After the plugin is published in the official WordPress.org directory, installations using this plugin slug receive WordPress's standard update notice whenever a newer stable version is released.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20posts%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to my posts if I delete the plugin?<\/h3><\/dt>\n<dd><p>Nothing. Uninstalling removes the plugin's settings, job records and its own post meta. Every article it wrote stays exactly where it is.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Enforce publishing capabilities for interactive and scheduled article jobs.<\/li>\n<li>Restrict article generation to models available in the configured provider picker.<\/li>\n<li>Limit job actions and history to the job owner unless the user can edit others' posts.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Require active external-service consent at execution time for interactive and scheduled provider requests.<\/li>\n<li>Load generated-content styles through WordPress enqueue APIs.<\/li>\n<li>Use WordPress.org language packs and Core's automatic translation loading.<\/li>\n<li>Remove the site URL from provider request headers.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Complete Persian and Arabic admin translations with automatic RTL layout.<\/li>\n<li>Built-in error report and suggestion form.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Generate human-sounding, SEO-scored articles with your own OpenAI or Claude key. Every draft is scored before it becomes a post.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/362360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=362360"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/scorecontent"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=362360"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=362360"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=362360"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=362360"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=362360"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=362360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}