{"id":335358,"date":"2026-07-06T12:56:11","date_gmt":"2026-07-06T12:56:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/draftcamp-publisher\/"},"modified":"2026-07-06T12:55:37","modified_gmt":"2026-07-06T12:55:37","slug":"draftcamp-publisher","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/draftcamp-publisher\/","author":23526922,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Draftcamp Publisher","header_author":"Draftcamp","header_description":"Companion plugin for Draftcamp. Lets the Draftcamp SaaS publish and update posts on this self-hosted WordPress site via a secure REST API.","assets_banners_color":"fbfbfb","last_updated":"2026-07-06 12:55:37","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/app.draftcamp.ai","header_author_uri":"https:\/\/draftcamp.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"andreiserbanoiu","date":"2026-07-06 12:55:37"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3597803,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3597803,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3597803,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3597803,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3597803,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Settings -&gt; Draftcamp page showing connection status.","2":"One-click pairing: enter the code from your Draftcamp account.","3":"Manual connection: generate a key to paste into Draftcamp."}},"plugin_section":[],"plugin_tags":[569,7143,23853,186],"plugin_category":[55],"plugin_contributors":[270331],"plugin_business_model":[],"class_list":["post-335358","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-publishing","plugin_tags-rest-api","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-andreiserbanoiu","plugin_committers-andreiserbanoiu"],"banners":{"banner":"https:\/\/ps.w.org\/draftcamp-publisher\/assets\/banner-772x250.png?rev=3597803","banner_2x":"https:\/\/ps.w.org\/draftcamp-publisher\/assets\/banner-1544x500.png?rev=3597803","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/draftcamp-publisher\/assets\/icon.svg?rev=3597803","icon":"https:\/\/ps.w.org\/draftcamp-publisher\/assets\/icon.svg?rev=3597803","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Draftcamp Publisher connects your self-hosted WordPress site to the Draftcamp SaaS so you can create, schedule, and update posts directly from Draftcamp.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Secure connection-key authentication (only a SHA-256 hash of the key is ever stored).<\/li>\n<li>One-click pairing or manual key generation.<\/li>\n<li>Create or update posts (draft, publish, or scheduled \"future\").<\/li>\n<li>Resolve categories and tags by name, creating any that are missing.<\/li>\n<li>Set a featured image from a remote URL.<\/li>\n<li>Write SEO title, meta description, and canonical URL for Yoast SEO, Rank Math, or All in One SEO.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your site to Draftcamp (https:\/\/app.draftcamp.ai), a third-party SaaS that writes and manages blog content. The connection exists so that content authored in Draftcamp can be published to this WordPress site. The plugin communicates with Draftcamp's servers in two situations:<\/p>\n\n<ol>\n<li><p>During one-click pairing. When you submit a pairing code on the Settings -&gt; Draftcamp page, the plugin sends a single request to the Draftcamp pairing endpoint you provide (by default https:\/\/api.draftcamp.ai\/wp\/draftcamp\/pair). The request contains: the pairing code you entered, this site's URL (home_url()), a freshly generated connection key, and the plugin version. This happens only when you click \"Connect to Draftcamp\". No pairing data is sent at any other time. If you connect manually (Generate Connection Key) instead, the plugin sends nothing to Draftcamp at all.<\/p><\/li>\n<li><p>Incoming publish requests. After connecting, Draftcamp's servers send authenticated requests TO this site's REST API (\/wp-json\/draftcamp\/v1) carrying post content (title, body HTML, excerpt, slug, categories, tags, optional featured image URL, and SEO fields). The plugin itself does not initiate outbound requests for these; it only receives and stores them as posts. When a featured image URL is included, WordPress downloads that image from the URL provided in the request.<\/p><\/li>\n<\/ol>\n\n<p>No analytics, telemetry, or personal visitor data is ever sent to Draftcamp. Use of the Draftcamp service is governed by its Terms of Service (https:\/\/draftcamp.ai\/terms) and Privacy Policy (https:\/\/draftcamp.ai\/privacy).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>draftcamp-publisher<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP from the Plugins screen.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Go to Settings -&gt; Draftcamp.<\/li>\n<li>Either enter a one-click pairing code from your Draftcamp account, or click \"Generate Connection Key\" and paste the key into Draftcamp manually.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20is%20my%20connection%20key%20stored%3F\"><h3>Where is my connection key stored?<\/h3><\/dt>\n<dd><p>Only the SHA-256 hash of the key is stored in your database. The raw key is shown once at generation time and never persisted.<\/p><\/dd>\n<dt id=\"which%20seo%20plugins%20are%20supported%3F\"><h3>Which SEO plugins are supported?<\/h3><\/dt>\n<dd><p>Yoast SEO, Rank Math, and All in One SEO. If none are active, SEO fields are ignored.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disconnect%3F\"><h3>How do I disconnect?<\/h3><\/dt>\n<dd><p>Use the \"Revoke key\" button on the Settings -&gt; Draftcamp page. Deleting the plugin also removes all stored data.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Compliance: text domain matches slug, removed redundant load_plugin_textdomain(), packaging cleanup.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: \/ping, \/taxonomy, and \/publish REST endpoints; one-click and manual pairing; SEO meta support.<\/li>\n<\/ul>","raw_excerpt":"Companion plugin for Draftcamp. Securely publishes and updates posts on your self-hosted WordPress site from the Draftcamp app.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/335358","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=335358"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/andreiserbanoiu"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=335358"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=335358"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=335358"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=335358"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=335358"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=335358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}