{"id":372283,"date":"2026-10-05T11:33:18","date_gmt":"2026-10-05T11:33:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/naito-connector\/"},"modified":"2026-10-05T11:32:46","modified_gmt":"2026-10-05T11:32:46","slug":"naito-connector","status":"publish","type":"plugin","link":"https:\/\/hsb.wordpress.org\/plugins\/naito-connector\/","author":23570152,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.13.0","stable_tag":"0.13.0","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Naito Connector","header_author":"Naito","header_description":"Recebe artigos gerados pelo Naito via webhook e cria\/atualiza posts automaticamente \u2014 sem precisar de desenvolvedor pra integrar.","assets_banners_color":"16181c","last_updated":"2026-10-05 11:32:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/naito.news","header_author_uri":"","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":{"0.13.0":{"tag":"0.13.0","author":"naitonews","date":"2026-10-05 11:32:46","revision":3728787}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3728787,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3728787,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3728787,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3728787,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.13.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3728787,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3728787,"resolution":"2","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"Settings &gt; Naito screen \u2014 webhook URL, secret, and the 3 publish-mode options (draft, published, or follow Naito's recommendation).","2":"A post imported by the plugin \u2014 featured image, category, and tags already filled in automatically from the received article."}},"plugin_section":[],"plugin_tags":[569,529,1248,186,15439],"plugin_category":[55],"plugin_contributors":[284483],"plugin_business_model":[],"class_list":["post-372283","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-content","plugin_tags-news","plugin_tags-seo","plugin_tags-webhook","plugin_category-seo-and-marketing","plugin_contributors-naitonews","plugin_committers-naitonews"],"banners":{"banner":"https:\/\/ps.w.org\/naito-connector\/assets\/banner-772x250.png?rev=3728787","banner_2x":"https:\/\/ps.w.org\/naito-connector\/assets\/banner-1544x500.png?rev=3728787","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/naito-connector\/assets\/icon-128x128.png?rev=3728787","icon_2x":"https:\/\/ps.w.org\/naito-connector\/assets\/icon-256x256.png?rev=3728787","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/naito-connector\/assets\/screenshot-1.png?rev=3728787","caption":"Settings &gt; Naito screen \u2014 webhook URL, secret, and the 3 publish-mode options (draft, published, or follow Naito's recommendation)."},{"src":"https:\/\/ps.w.org\/naito-connector\/assets\/screenshot-2.png?rev=3728787","caption":"A post imported by the plugin \u2014 featured image, category, and tags already filled in automatically from the received article."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/naito.news\">Naito<\/a> generates original, subscriber-exclusive news articles from the same day's headlines. This plugin delivers each article straight into your WordPress via webhook: it creates the post (draft or published, your choice), downloads and sets the featured image, fills in category\/tags, and populates the Yoast and RankMath SEO fields (whichever is installed).<\/p>\n\n<p>When the source story is updated later (Naito sends <code>article.updated<\/code>), the plugin finds the post it already created and updates it instead of duplicating it.<\/p>\n\n<h4>What this plugin does NOT do<\/h4>\n\n<ul>\n<li>It does not invent content or talk to any AI \u2014 it only receives what Naito has already generated and delivered via webhook.<\/li>\n<li>It does not delete posts on uninstall \u2014 it only removes the plugin's own configuration.<\/li>\n<li>It does not duplicate structured data: the schema.org (JSON-LD) markup Naito already generates for each article (NewsArticle, and FAQPage when applicable) is only output when no recognized SEO plugin is active \u2014 if you use Yoast\/RankMath, their schema.org output remains the source of truth.<\/li>\n<\/ul>\n\n<h4>External services<\/h4>\n\n<p>This plugin works together with the Naito service (<a href=\"https:\/\/naito.news\">naito.news<\/a>), operated by the plugin's author. It involves two kinds of traffic:<\/p>\n\n<ul>\n<li><strong>Incoming (Naito to your site):<\/strong> Naito sends each generated article to your site's webhook URL (Settings &gt; Naito), signed with the secret you configured. Nothing is sent back to Naito by the plugin.<\/li>\n<li><strong>Outgoing (your site to Naito):<\/strong> when an article has a featured image, the plugin downloads it with a standard HTTP GET from a temporary, signed image URL included in the webhook payload (hosted on Naito's storage domain, <code>cdn.naito.news<\/code>). The only information the server receives is what any HTTP request exposes (your server's IP address and user agent); no content, user, or site data is transmitted.<\/li>\n<\/ul>\n\n<p>The plugin does not load any scripts, fonts, or tracking from external sources and collects no visitor data. Naito's terms of use are at <a href=\"https:\/\/naito.news\/terms\">naito.news\/terms<\/a> and its privacy policy at <a href=\"https:\/\/naito.news\/privacy\">naito.news\/privacy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>naito-connector<\/code> folder to <code>\/wp-content\/plugins\/<\/code> (or install the <code>.zip<\/code> directly from the admin).<\/li>\n<li>Activate the plugin from the Plugins menu.<\/li>\n<li>Go to Settings &gt; Naito.<\/li>\n<li>Copy the webhook URL shown there and paste it into the Naito dashboard, in your client's webhook field.<\/li>\n<li>Paste the \"Webhook secret\" from the Naito dashboard into the same field here \u2014 it must match on both sides.<\/li>\n<li>Choose whether new articles come in as drafts (recommended, so you can review first) or already published.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20naito%20api%20key%20here%20in%20the%20plugin%3F\"><h3>Do I need a Naito API key here in the plugin?<\/h3><\/dt>\n<dd><p>No. The plugin only receives deliveries via webhook \u2014 it never makes any outbound call to the Naito API.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20webhook%20secret%20is%20wrong%3F\"><h3>What happens if the webhook secret is wrong?<\/h3><\/dt>\n<dd><p>The request is rejected with HTTP 401 before any post is created \u2014 the HMAC signature has to match.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20post%20after%20it%27s%20imported%3F\"><h3>Can I edit the post after it's imported?<\/h3><\/dt>\n<dd><p>Yes, normally \u2014 it becomes a regular WordPress post. If Naito later sends an update to the same story, the content is rewritten, but the publish <em>status<\/em> you set manually is preserved (the plugin never demotes a post you've already reviewed\/published back to draft).<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22follow%20naito%27s%20recommendation%22%20mode%3F\"><h3>What is the \"Follow Naito's recommendation\" mode?<\/h3><\/dt>\n<dd><p>Instead of every new post always being born as a draft or always published, Naito decides per article: published when the source text was extracted with high confidence, draft when extraction was weaker (excerpt aggregation instead of full text). It's just another option \u2014 if you prefer full manual control, \"Save as draft\" or \"Publish automatically\" are still available and ignore this signal.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20the%20posts%20naito%20created%20among%20my%20own%20drafts%3F\"><h3>How do I find the posts Naito created among my own drafts?<\/h3><\/dt>\n<dd><p>In Posts, look for the \"Naito (N)\" link next to All \/ Published \/ Drafts \u2014 it lists only what Naito imported. The \"Naito - Marca\" and \"Naito - Categoria\" columns show which brand and category each post came from; clicking a value filters the list by it. These are private labels: they never appear on your site (no archive page, no URL, no menu), and the post itself is a regular WordPress post.<\/p><\/dd>\n<dt id=\"what%20is%20the%20short%20paragraph%20right%20below%20the%20title%20on%20every%20post%3F\"><h3>What is the short paragraph right below the title on every post?<\/h3><\/dt>\n<dd><p>That's the subtitle (a.k.a. \"dek\" or \"standfirst\") \u2014 a 1-2 sentence line that expands on the headline without repeating it, a common convention in newsrooms worldwide. Naito already generated this text for every article; it just wasn't shown on the page before \u2014 only saved as the post excerpt, which most themes never display on the article page itself. It's still saved as the excerpt too (useful for listings, RSS, and social previews), this is in addition to that, not instead of it.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22related%20reading%22%20block%20that%20appears%20on%20some%20posts%3F\"><h3>What is the \"Related reading\" block that appears on some posts?<\/h3><\/dt>\n<dd><p>When Naito identifies your own older articles related (same category) to a new one, it suggests up to 3 links \u2014 the plugin only includes the ones that already exist for real in this WordPress install (previously imported by this same plugin). There's nothing to configure; it's automatic and silent when there's nothing related yet.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22naito%20%E2%80%94%20social%20pack%22%20box%20that%20appears%20on%20the%20edit%20screen%3F\"><h3>What is the \"Naito \u2014 Social pack\" box that appears on the edit screen?<\/h3><\/dt>\n<dd><p>When Naito generates a Twitter\/X thread, a LinkedIn post, and\/or an Instagram caption for an article, that text is made ready in a sidebar box on the post edit screen \u2014 just click to select, then copy\/paste into the network you want. The plugin never posts to any social network on its own; it only hands your social media manager ready-to-use text. The box only appears on posts that have this content.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22sources%22%20section%20at%20the%20end%20of%20some%20posts%3F\"><h3>What is the \"Sources\" section at the end of some posts?<\/h3><\/dt>\n<dd><p>Naito checks each factual claim in an article against the source material and keeps the exact excerpt that backs it up. This section shows that, claim by claim, collapsed by default so it doesn't get in the way of reading \u2014 click to expand. Besides giving readers a way to verify what's stated, showing real source excerpts (not just a link) is one of the signals AI answer engines (ChatGPT, Perplexity, Google AI Overviews) look for when deciding what to cite. Only appears on posts that have this data.<\/p><\/dd>\n<dt id=\"what%20is%20the%20sponsored%20content%20notice%20at%20the%20top%20of%20some%20posts%3F\"><h3>What is the sponsored content notice at the top of some posts?<\/h3><\/dt>\n<dd><p>Naito also offers Branded Content: articles written from a client's own brief (not from a news source), for the client's sponsors. Those posts always open with a plain-text disclosure naming the sponsor \u2014 there's no setting to turn it off, since it's a transparency requirement, not a style choice. Regular posts (the vast majority) are entirely unaffected and show no such notice.<\/p><\/dd>\n<dt id=\"can%20a%20branded%20content%20post%20link%20out%20to%20the%20sponsor%3F\"><h3>Can a Branded Content post link out to the sponsor?<\/h3><\/dt>\n<dd><p>Yes \u2014 when the client provides a destination URL with the request, the post gets a \"Learn more\" link to the sponsor near the end of the article, marked <code>rel=\"sponsored\"<\/code> per Google's own guidance for paid links. This link is always built by the plugin itself from that URL field; the AI never writes its own links into the article text, so there's nothing to configure or worry about it getting mangled.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.13.0<\/h4>\n\n<ul>\n<li>Optional AI-disclosure line at the end of each post (\"how this content was created\"). Turned on and worded in the Naito dashboard, off by default; the plugin only renders what the Naito payload carries and has no setting of its own. The \"reviewed by the editorial team\" wording is only ever sent for articles that actually went through the Naito review queue.<\/li>\n<\/ul>\n\n<h4>0.12.0<\/h4>\n\n<ul>\n<li>Branded Content posts can now arrive with no image at all, by design \u2014 the Naito API no longer generates a stand-in image when the client didn't provide one for the request. When that happens, no featured image is set and the plugin never errors; the publisher is expected to add the client's actual agreed-upon media directly in WordPress when publishing.<\/li>\n<\/ul>\n\n<h4>0.11.0<\/h4>\n\n<ul>\n<li>Branded Content posts can now carry a real call-to-action link to the sponsor (\"Learn more\"), when the client provides a destination URL for the request. It is always built by the plugin from the raw URL field, never from free text the AI wrote in the article body \u2014 Markdown links are not rendered anywhere in this pipeline, and raw HTML written by the model was never trusted either. Marked <code>rel=\"sponsored\"<\/code> per Google's own guidance for paid links.<\/li>\n<\/ul>\n\n<h4>0.10.0<\/h4>\n\n<ul>\n<li>Naito posts are now easy to tell apart in the posts list: \"Naito - Marca\" and \"Naito - Categoria\" columns (click a value to filter) and a \"Naito (N)\" link next to All\/Published\/Drafts. They are non-public taxonomies \u2014 no page, URL, or visible category\/tag on your site, and the post remains a regular post.<\/li>\n<li>Updates (<code>article.updated<\/code>) no longer overwrite the real WordPress categories and tags \u2014 they are applied only when the post is created, so anything the editor recategorized or retagged is kept.<\/li>\n<li>Uninstalling the plugin also removes those brand\/category labels (never the posts).<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>Subtitle (dek): the executive summary Naito already generates for each article now appears visibly right below the title, before \"Key points\" \u2014 until now it was only saved as the WordPress excerpt, which most themes never show on the article page itself.<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>Branded Content: when an article is sponsored content, the post now opens with a disclosure notice (\"Sponsored content by X\"), always \u2014 not configurable, since it is an ethical\/legal requirement, not a style choice. It only appears on posts generated as Branded Content; every regular post stays identical.<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>New \"Sources\" section, collapsed by default, at the end of the post: the claim-by-claim source excerpts Naito already generates for every article (proof for what's stated, not just a source list) are now actually shown on the page \u2014 this data used to reach only Naito's own review dashboard, never the published post.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>New \"Naito \u2014 Social pack\" box on the post edit screen: Twitter\/X thread, LinkedIn post, and Instagram caption that Naito already generates for each article, ready to copy and paste \u2014 this text used to arrive in the payload but had no native WordPress field to map to, so it was never used.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>The post URL now uses the optimized slug Naito already generates for each article, instead of WordPress deriving it on its own from the title \u2014 only applied on creation, never changes the URL of a post the publisher has already published\/shared.<\/li>\n<li>Structured data (schema.org\/JSON-LD \u2014 NewsArticle, and FAQPage when the article has questions and answers) is now actually rendered on the page, not just stored unused \u2014 but only when no recognized SEO plugin (Yoast, RankMath) is active, so it never duplicates\/conflicts with the schema they already generate.<\/li>\n<li>Fixed a real encoding bug: articles with accented characters (i.e., practically every Portuguese-language article) had their structured data saved corrupted (e.g., \"\u00e7\" turned into the literal text \"u00e7\") \u2014 WordPress strips escape backslashes automatically when saving post meta, and the plugin wasn't compensating for that.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>\"Key points\" block at the top of the post, built from the highlights Naito already generates for each article \u2014 this data used to arrive in the payload but the plugin never used it.<\/li>\n<li>Social sharing preview (Open Graph\/Twitter Card) filled in on Yoast and RankMath from the text Naito already writes specifically for that purpose \u2014 previously only the search SEO fields (title\/description) were filled in, so the social preview fell back to the generic excerpt.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Internal link suggestion: when Naito identifies older related articles (same category, already published by you), the plugin appends a \"Related reading\" block with real links to the end of the post \u2014 only when the related article already exists in this WordPress install.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Third publish mode: \"Follow Naito's recommendation\" \u2014 uses the payload's <code>recommended_status<\/code> (source extraction confidence) to decide draft vs. published per article, instead of the single fixed mode from before.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First version: receives <code>article.created<\/code>\/<code>article.updated<\/code>, creates\/updates the post, featured image, category\/tags, SEO (Yoast\/RankMath).<\/li>\n<\/ul>","raw_excerpt":"Receives articles generated by Naito and automatically creates\/updates WordPress posts \u2014 no developer needed to integrate.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/372283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=372283"}],"author":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/naitonews"}],"wp:attachment":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=372283"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=372283"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=372283"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=372283"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=372283"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=372283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}