{"id":338453,"date":"2026-07-16T16:10:29","date_gmt":"2026-07-16T16:10:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ia-top-connect\/"},"modified":"2026-07-16T16:01:21","modified_gmt":"2026-07-16T16:01:21","slug":"ia-top-connect","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ia-top-connect\/","author":23530610,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.6","stable_tag":"1.6.6","tested":"7.0.1","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"IA.Top Connect","header_author":"IA.Top \u2014 InteligenciaArtificial.Top","header_description":"Connects your WordPress site to IA.Top to automate the publishing of AI-generated, SEO-optimized content.","assets_banners_color":"666666","last_updated":"2026-07-16 16:01:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/inteligenciaartificial.top","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.6.6":{"tag":"1.6.6","author":"ucemarc","date":"2026-07-16 16:01:21"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3610489,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3610489,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.6.6"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,5739,569,8494,186],"plugin_category":[55],"plugin_contributors":[271915],"plugin_business_model":[],"class_list":["post-338453","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-artificial-intelligence","plugin_tags-automation","plugin_tags-content-generation","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-ucemarc","plugin_committers-ucemarc"],"banners":{"banner":"https:\/\/ps.w.org\/ia-top-connect\/assets\/banner-772x250.png?rev=3610489","banner_2x":"https:\/\/ps.w.org\/ia-top-connect\/assets\/banner-1544x500.png?rev=3610489","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/ia-top-connect_666666.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin securely links your WordPress site to a content automation platform in a single click, so that new articles can be published on your behalf without ever sharing your admin password.<\/p>\n\n<p>Once connected, the platform automatically publishes search-engine-optimized articles to your blog, written and structured to match your industry and brand voice. The plugin detects whichever SEO plugin you already use \u2014 Yoast SEO, Rank Math, SEOPress, or All in One SEO \u2014 and fills in the title, meta description, and focus keyword for every article it publishes, so your existing SEO setup keeps working exactly as before.<\/p>\n\n<p><strong>What the plugin does:<\/strong><\/p>\n\n<ul>\n<li>Securely generates a WordPress Application Password so the automation platform can publish on your behalf, without ever handling your admin password<\/li>\n<li>Sends those credentials to the platform over an encrypted connection<\/li>\n<li>Lets you disconnect at any time \u2014 the generated password is removed automatically<\/li>\n<li>Cleans up the connection and the generated password automatically if you deactivate or remove the plugin<\/li>\n<li>Keeps track of page views and internal link clicks on published posts, so you can see how each article performs<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>WordPress 5.6 or later (needed for Application Passwords)<\/li>\n<li>A user account with administrator permissions<\/li>\n<li>A client code, provided when you sign up for the automation service<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to IA.Top (inteligenciaartificial.top), the AI content automation platform this plugin gives access to. This service is provided by IA.Top: <a href=\"https:\/\/www.inteligenciaartificial.top\/terminos-de-servicio\/\">terms of service<\/a>, <a href=\"https:\/\/www.inteligenciaartificial.top\/politica-de-privacidad\/\">privacy policy<\/a>. The following calls are made:<\/p>\n\n<ul>\n<li><strong>When you click \"Connect with IA.Top\"<\/strong>: the plugin sends your site's domain, REST API URL, the WordPress username and email of the connecting administrator, a freshly generated WordPress Application Password, the site's name\/language\/version, the detected SEO plugin, and a per-site secret used to authenticate later calls, to <code>https:\/\/n8n.inteligenciaartificial.top\/webhook\/wordpress-connect<\/code>. This only happens when an administrator enters their client code and clicks \"Connect with IA.Top\".<\/li>\n<li><strong>When you disconnect, deactivate, or uninstall the plugin<\/strong>: the same endpoint above is notified (domain + action) so IA.Top stops publishing to your site.<\/li>\n<li><strong>When a post's status changes<\/strong> (published, scheduled, trashed, or permanently deleted): the plugin notifies <code>https:\/\/n8n.inteligenciaartificial.top\/webhook\/post-status-changed<\/code> with the post ID, the old and new status, and the date \u2014 only if the site is connected.<\/li>\n<li><strong>When a visitor clicks a link inside a single post<\/strong>: the plugin notifies <code>https:\/\/n8n.inteligenciaartificial.top\/webhook\/link-click<\/code> with the URL, the link text, the page zone, and a non-reversible visitor hash built from the IP address, user agent, and a salt that rotates daily \u2014 the raw IP address is never stored or sent \u2014 only if the site is connected.<\/li>\n<li><strong>The IA.Top dashboard polls<\/strong> <code>GET \/wp-json\/ia\/v1\/posts-sync<\/code> on your own WordPress site (not the other way around) to read the status, content, and view count of your posts.<\/li>\n<\/ul>\n\n<p>None of these calls are made unless you have connected the plugin using your IA.Top client code.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ia-top-connect<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin from the WordPress 'Plugins' menu<\/li>\n<li>Go to the new 'IA.Top' section in the side menu<\/li>\n<li>Enter your client code and click 'Connect with IA.Top'<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20safe%3F\"><h3>Is it safe?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses WordPress's native Application Passwords system. The generated password only grants access to the REST API, not the admin dashboard. You can revoke it at any time.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>The Application Password is automatically deleted and IA.Top is notified to stop publishing.<\/p><\/dd>\n<dt id=\"can%20i%20reconnect%20after%20disconnecting%3F\"><h3>Can I reconnect after disconnecting?<\/h3><\/dt>\n<dd><p>Yes, just enter your client code again and connect. A new password will be generated.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.6<\/h4>\n\n<ul>\n<li>Added a per-IP rate limit to the public <code>\/pv<\/code> and <code>\/lc<\/code> beacon endpoints, capping how many post-meta writes, dedup transients, and outbound webhook calls a single client can trigger per minute<\/li>\n<\/ul>\n\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>Added a Terms of Service link alongside the Privacy Policy link in the External services section<\/li>\n<\/ul>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Moved the admin settings page CSS out of an inline <code>&lt;style&gt;<\/code> tag and into <code>wp_add_inline_style()<\/code>, loaded only on the plugin's own admin page<\/li>\n<li>Tightened REST permissions: <code>\/posts-sync<\/code> now requires <code>manage_options<\/code> (it returns full site content including private\/trashed posts), <code>\/seo-fields<\/code> now checks <code>edit_post<\/code> capability for the specific post being modified, and <code>\/seo-plugin<\/code> now requires <code>edit_posts<\/code> instead of being public<\/li>\n<li>Translated the rest of the readme (Installation, FAQ, External services, Tags) to English, and documented each external service call with what is sent, when, and a link to IA.Top's privacy policy<\/li>\n<li>Translated the plugin header description to English<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Removed the <code>Plugin URI<\/code> header \u2014 it was identical to <code>Author URI<\/code>, which WordPress.org's submission form rejects<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Fixed two remaining Plugin Check warnings by moving the <code>phpcs:ignore<\/code> comments to the exact lines they needed to cover<\/li>\n<li>Expanded the English plugin description (the short version was likely triggering a language-detection false positive)<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fixed unescaped output flagged by the WordPress Plugin Check tool (version number, admin notice link)<\/li>\n<li>Removed <code>suppress_filters<\/code> from the posts-sync query (discouraged by WordPress performance guidelines)<\/li>\n<li>Sanitized and unslashed all <code>$_SERVER<\/code>\/<code>$_POST<\/code> reads ($_SERVER['REMOTE_ADDR'], HTTP_USER_AGENT, HTTP_REFERER, iatop_client_uuid)<\/li>\n<li>The connect form now verifies the nonce before re-displaying a previously submitted client code<\/li>\n<li>Documented the direct <code>$wpdb<\/code> calls against AIOSEO's own table with justification comments (no core API exists for it)<\/li>\n<li>Renamed unprefixed globals in <code>uninstall.php<\/code><\/li>\n<li>Updated \"Tested up to\" and translated the plugin's short and long description to English, as required for the WordPress.org directory listing<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added <code>uninstall.php<\/code>: cleans up the Application Password and connection when the plugin is deleted, not just deactivated<\/li>\n<li>Added the \"External services\" section to the readme, documenting each outbound call to IA.Top<\/li>\n<li>Fixed the readme's <code>Stable tag<\/code>, which didn't match the plugin's real version<\/li>\n<li>Updated the <code>Contributors<\/code> list<\/li>\n<\/ul>\n\n<h4>1.5.5<\/h4>\n\n<ul>\n<li>Automatic detection of the active SEO plugin (Yoast, Rank Math, SEOPress, AIOSEO) and a unified <code>\/wp-json\/ia\/v1\/seo-fields<\/code> endpoint to write title, description, and focus keyword regardless of which plugin is installed<\/li>\n<li>Direct write access to <code>wp_aioseo_posts<\/code> for AIOSEO (no paid REST add-on required)<\/li>\n<li><code>\/wp-json\/ia\/v1\/posts-sync<\/code> endpoint so IA.Top can reconcile post status, content, and views<\/li>\n<li>View (<code>post_views_count<\/code>) and link-click tracking, with 15-minute deduplication and bot filtering<\/li>\n<li>Notifies IA.Top on post status changes (publish, schedule, trash) and on permanent deletion<\/li>\n<li>Fixed the real publish date on scheduled posts<\/li>\n<li>\"Views\" column in the admin post list<\/li>\n<li>Admin notice when the plugin is installed but not connected<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Connection to IA.Top via Application Passwords<\/li>\n<li>Status panel with connect\/disconnect<\/li>\n<li>Automatic cleanup on deactivation<\/li>\n<\/ul>","raw_excerpt":"Connect your WordPress site to IA.Top to automatically receive AI-generated, SEO-optimized content.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338453","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=338453"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ucemarc"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338453"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338453"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338453"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338453"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338453"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}