{"id":375971,"date":"2026-10-02T10:35:48","date_gmt":"2026-10-02T10:35:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/newsroom-sync-for-wp-publisher\/"},"modified":"2026-10-02T10:57:55","modified_gmt":"2026-10-02T10:57:55","slug":"kloos-newsroom-sync-publisher","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kloos-newsroom-sync-publisher\/","author":23574158,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.5","stable_tag":"1.2.5","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Kloos Newsroom Sync Publisher","header_author":"Kloos Eduard-Andreas","header_description":"Distributes posts from a central WordPress site to any number of receiver sites over a signed REST API.","assets_banners_color":"2c5ec0","last_updated":"2026-10-02 10:57:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/klooseduard.ro","rating":0,"author_block_rating":0,"active_installs":0,"downloads":71,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.4":{"tag":"1.2.4","author":"kloos","date":"2026-10-02 10:35:38","revision":3724573},"1.2.5":{"tag":"1.2.5","author":"kloos","date":"2026-10-02 10:57:55","revision":3724609}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3724573,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3724573,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3724573,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3724573,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.4","1.2.5"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3724573,"resolution":"1","location":"assets","locale":"","width":1536,"height":784},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3724573,"resolution":"2","location":"assets","locale":"","width":1536,"height":784},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3724573,"resolution":"3","location":"assets","locale":"","width":1536,"height":784}},"screenshots":{"1":"Connected sites, with their status and last connection check.","2":"The \"Article distribution\" box in the block editor \u2014 choose which connected sites get this article.","3":"Settings: current plan and usage, plus distribution options."}},"plugin_section":[],"plugin_tags":[127666,441,7143,23853,5699],"plugin_category":[51],"plugin_contributors":[78154,283999],"plugin_business_model":[],"class_list":["post-375971","plugin","type-plugin","status-publish","hentry","plugin_tags-content-distribution","plugin_tags-multisite","plugin_tags-publishing","plugin_tags-rest-api","plugin_tags-syndication","plugin_category-multisite","plugin_contributors-freemius","plugin_contributors-kloos","plugin_committers-kloos"],"banners":{"banner":"https:\/\/ps.w.org\/kloos-newsroom-sync-publisher\/assets\/banner-772x250.png?rev=3724573","banner_2x":"https:\/\/ps.w.org\/kloos-newsroom-sync-publisher\/assets\/banner-1544x500.png?rev=3724573","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kloos-newsroom-sync-publisher\/assets\/icon-128x128.png?rev=3724573","icon_2x":"https:\/\/ps.w.org\/kloos-newsroom-sync-publisher\/assets\/icon-256x256.png?rev=3724573","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kloos-newsroom-sync-publisher\/assets\/screenshot-1.jpg?rev=3724573","caption":"Connected sites, with their status and last connection check."},{"src":"https:\/\/ps.w.org\/kloos-newsroom-sync-publisher\/assets\/screenshot-2.jpg?rev=3724573","caption":"The \"Article distribution\" box in the block editor \u2014 choose which connected sites get this article."},{"src":"https:\/\/ps.w.org\/kloos-newsroom-sync-publisher\/assets\/screenshot-3.jpg?rev=3724573","caption":"Settings: current plan and usage, plus distribution options."}],"raw_content":"<!--section=description-->\n<p>Kloos Newsroom Sync Publisher runs on your central WordPress site. Tick the sites you want an article to go to, publish as usual, and the plugin pushes the title, content, excerpt, featured image, category and SEO fields to each one in the background \u2014 with automatic retries, per-site delivery status and a full log.<\/p>\n\n<p>It's built for anyone running more than one WordPress site from a shared editorial workflow: publisher networks, franchise or multi-location sites, agencies managing several client sites with the same content, or a company blog mirrored to regional sites.<\/p>\n\n<h4>How delivery works<\/h4>\n\n<p>On each destination site, install the free companion plugin, <strong>Kloos Newsroom Sync Receiver<\/strong>, and connect it with a signed key \u2014 no destination-site REST credentials to manage, no public write access to guess at. Every request between the two plugins is signed and verified.<\/p>\n\n<h4>Free plan<\/h4>\n\n<ul>\n<li>Connect unlimited destination sites via the free Kloos Newsroom Sync Receiver companion plugin<\/li>\n<li>Automated push distribution with retries and per-site logs<\/li>\n<li>Centralized article management from the block editor<\/li>\n<\/ul>\n\n<h4>Pro plans<\/h4>\n\n<p>Upgrading unlocks, on top of everything in the free plan:<\/p>\n\n<ul>\n<li>Direct REST connection: reach a destination site with just an editor account and an application password, no Receiver plugin install required there \u2014 up to 10 sites on Starter, unlimited on Business and Agency<\/li>\n<li>PDF distribution reports: a one-page summary of where an article was published, with a link to each copy<\/li>\n<li>Priority email support<\/li>\n<li>Agency plan only: install the Publisher itself on unlimited central sites under one license<\/li>\n<\/ul>\n\n<p>License activation, billing and upgrades are handled by our payment processor, Freemius \u2014 see \"External Services\" below.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<p><strong>Freemius<\/strong> \u2014 used for license activation, plan\/subscription management and plugin update delivery for the Pro plans. The first time you open this plugin's admin page, Freemius shows its own opt-in screen with two explicit choices: \"Allow &amp; Continue\" or \"Skip\". Nothing is sent to Freemius unless you choose \"Allow &amp; Continue\"; choosing \"Skip\" (or simply not opting in) keeps the plugin fully functional on the free plan with no data sent. If you do opt in, what's shared is basic site data (URL, WordPress\/PHP version, plugin version) needed to serve updates and enforce your plan \u2014 never content, post data or destination-site details. See the <a href=\"https:\/\/freemius.com\/privacy\/\">Freemius Privacy Policy<\/a> and <a href=\"https:\/\/freemius.com\/terms\/\">Terms of Service<\/a>.<\/p>\n\n<p><strong>The destination sites you connect<\/strong> \u2014 this is the plugin's core function, not a third-party service: when you add a site under Sites and publish an article, the article's title, content, excerpt, featured image and category are sent directly to that site (over a signed connection to its Receiver plugin, or, on Pro, over its WordPress REST API). These are sites you explicitly configure; nothing is sent anywhere you have not added yourself.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>kloos-newsroom-sync-publisher<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP from Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate the plugin.<\/li>\n<li>On each site you want to publish to, install and activate <strong>Kloos Newsroom Sync Receiver<\/strong>, then copy its connection key into this plugin's Sites screen.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20install%20anything%20on%20the%20destination%20sites%3F\"><h3>Do I need to install anything on the destination sites?<\/h3><\/dt>\n<dd><p>On the free plan and on the Receiver-based connection, yes: install the free <strong>Kloos Newsroom Sync Receiver<\/strong> plugin there and connect it with the key it generates. Pro's direct REST connection type is the exception \u2014 it reaches a destination site with just an editor account and an application password, no Receiver plugin needed.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20connected%20sites%20if%20i%20don%27t%20upgrade%2C%20or%20my%20license%20lapses%3F\"><h3>What happens to my connected sites if I don't upgrade, or my license lapses?<\/h3><\/dt>\n<dd><p>Nothing is disconnected or deleted, and every site stays connected regardless of plan \u2014 the free plan never limits how many sites you can connect via the Receiver plugin. Pro-only connection types and features \u2014 the direct REST connection and the PDF distribution report \u2014 stop being reachable until the license is active again; sites connected through the Receiver plugin are never affected by license status.<\/p><\/dd>\n<dt id=\"does%20this%20touch%20my%20posts%2C%20media%20or%20categories%20directly%3F\"><h3>Does this touch my posts, media or categories directly?<\/h3><\/dt>\n<dd><p>No. Delivery happens through the REST API of the destination site (or through the Receiver plugin's own signed endpoint); nothing on the central site's own content is modified by installing or using this plugin.<\/p><\/dd>\n<dt id=\"does%20this%20work%20on%20wordpress%20multisite%3F\"><h3>Does this work on WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes, each site in the network can run Publisher and\/or Receiver independently.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Change: recognises articles imported by Kloos Newsroom Sync Receiver 1.2.0 and newer, which renamed its internal names from <code>wns_rcv_<\/code> to <code>knsrcv_<\/code>, so a site running both plugins still never re-distributes an article it imported. Older Receivers keep working.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Change: internal function, hook, constant and option names now use the <code>knspub_<\/code>\/<code>KNSPUB_<\/code> prefix instead of <code>wns_pub_<\/code>\/<code>WNS_PUBLISHER_<\/code>\/<code>wns_fs<\/code> (WordPress.org requires prefixes over 4 characters; \"wns\" was too short). No user-facing change.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Change: the free plan no longer limits how many destination sites you can connect via the Receiver plugin \u2014 that connection type is, and always will be, unlimited on every plan. The Pro plans' site-count tiers (10 on Starter, unlimited on Business and Agency) now apply specifically to the direct REST connection type, matching how those plans have always been priced.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fix: publishing from the block editor with only some sites ticked in \"Article distribution\" could deliver the article to every connected site instead, because the box saves through a second request that lands after the block editor's own \"Publish\" request. A first-publish job now waits a few seconds for that second request before it can be sent, and a site that turns out not to be selected is marked skipped as soon as the real selection is known, instead of possibly being sent first.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Compatible with PHP 7.4 and newer (tested on PHP 7.4 with WordPress 6.0 and on PHP 8.x with the current WordPress).<\/li>\n<li>Security: the address of a destination site is now also checked by the plugin itself (private, loopback, link-local such as the cloud metadata address 169.254.169.254, carrier-grade NAT and reserved ranges), when the site is saved and before every request. WordPress' own check does not cover all of these on older versions.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: \"Direct REST\" connection type. A site can be reached with an account on it (an Editor is enough) and an application password, through the WordPress REST API, without installing the Receiver plugin there. Articles, categories and the featured image are delivered; the SEO fields are not.<\/li>\n<li>Jobs table: driver_state (schema revision 5). <code>wp wns-publisher add-site<\/code> and <code>edit-site<\/code> accept --driver, --rest-user, --rest-status, --create-categories and --trash-copy.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: PDF distribution report of an article (which sites published it, with the link on each), from the editor box, the Deliveries list and <code>wp wns-publisher report<\/code>.<\/li>\n<li>The jobs table keeps the address and status of the article on each receiver (schema revision 4).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial project skeleton.<\/li>\n<\/ul>","raw_excerpt":"Publish once on a central WordPress site and distribute posts to your other sites automatically, with delivery logs and retries.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375971","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=375971"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kloos"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375971"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375971"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375971"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375971"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375971"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}