Skip to content

Commit 1ea3d9d

Browse files
authored
Merge pull request #190 from Automattic/master
2 parents b34a01b + b1eeb01 commit 1ea3d9d

File tree

8 files changed

+769
-88
lines changed

8 files changed

+769
-88
lines changed

.phpcs.xml.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
<rule ref="WordPress.WP.I18n">
5959
<properties>
6060
<property name="text_domain" type="array">
61-
<element value="syndication"/>
61+
<element value="push-syndication"/>
6262
</property>
6363
</properties>
6464
</rule>

CHANGELOG.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Changelog for Syndication
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
## [2.2.0] - 2026-01-06
8+
9+
**Note on versioning:** This release follows 2.0.1 from the `develop` branch. A `2.1` branch existed with experimental features but was never formally released. To avoid confusion with that unreleased work and establish a clean baseline, we're releasing as 2.2.0. The `3.0.0` release will incorporate architectural improvements and any valuable features from the experimental branch, bringing all development back to a single, unified codebase.
10+
11+
### Fixed
12+
13+
* fix: defer pull jobs refresh to prevent timeout with many sites by @GaryJones in <https://github.com/Automattic/syndication/pull/185>
14+
* fix: add validation before queuing auto-retry cron jobs by @GaryJones in <https://github.com/Automattic/syndication/pull/186>
15+
* fix: use wp_strip_all_tags for token/password sanitization by @GaryJones in <https://github.com/Automattic/syndication/pull/187>
16+
* fix: format dates as ISO 8601 for WordPress.com REST API by @GaryJones in <https://github.com/Automattic/syndication/pull/188>
17+
* fix: prevent PHP warning when settings are null by @GaryJones in <https://github.com/Automattic/syndication/pull/182>
18+
* fix: prevent syndication loops through unique post identification by @GaryJones in <https://github.com/Automattic/syndication/pull/184>
19+
* security: escape output in admin interfaces by @GaryJones in <https://github.com/Automattic/syndication/pull/181>
20+
21+
### Added
22+
23+
* feat: pass site ID to syn_rss_pull_filter_post filter by @chetansatasiya in <https://github.com/Automattic/syndication/pull/128>
24+
25+
### Maintenance
26+
27+
* test: add comprehensive unit tests for cron pull time interval by @GaryJones in <https://github.com/Automattic/syndication/pull/183>
28+
29+
## [2.0.1] - 2017-12-18
30+
31+
### Fixed
32+
33+
* fix: declare Syndication globally in a more explicit way by @nickdaugherty in <https://github.com/Automattic/syndication/pull/139>
34+
35+
### Added
36+
37+
* feat: add auto-retry for failed syndication connections by @tott in <https://github.com/Automattic/syndication/pull/77>
38+
* feat: add two new filters for the post body sent to the REST API by @betzster in <https://github.com/Automattic/syndication/pull/78>
39+
* feat: add admin notifications for syndication status by @betzster
40+
* feat: display message when site status is disabled due to failed connection by @betzster
41+
42+
### Changed
43+
44+
* chore: add Travis CI configuration by @trepmal in <https://github.com/Automattic/syndication/pull/122>
45+
* chore: add icon and banner assets by @kraftbj in <https://github.com/Automattic/syndication/pull/79>
46+
47+
### Maintenance
48+
49+
* security: add nonces for notification dismissal by @betzster
50+
* security: add missing sanitization for message data by @betzster
51+
52+
## [2.0.0] - 2012-08-20
53+
54+
### Changed
55+
56+
* Refactored codebase to follow WordPress coding standards
57+
* Renamed plugin files and classes for consistency
58+
* Added user role selection for syndication permissions
59+
* Improved CSS styling for admin interfaces
60+
61+
## 1.0.0 - 2012-07-25
62+
63+
Initial release.
64+
65+
[2.2.0]: https://github.com/Automattic/syndication/compare/2.0.1...2.2.0
66+
[2.0.1]: https://github.com/Automattic/syndication/compare/2.0.0...2.0.1
67+
[2.0.0]: https://github.com/Automattic/syndication/compare/1.0...2.0.0

README.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Syndication
2+
3+
Stable tag: 2.2.0
4+
Requires at least: 6.4
5+
Tested up to: 6.9
6+
Requires PHP: 7.4
7+
License: GPLv2 or later
8+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
9+
Tags: syndication, xmlrpc, rest-api, content-distribution, multisite
10+
Contributors: automattic, garyj, nprasath002, batmoo, betzster, nickdaugherty
11+
12+
Syndicate content to and from your WordPress sites. Push posts to multiple destinations or pull content from external feeds with a single click.
13+
14+
## Description
15+
16+
Syndication helps users manage posts across multiple sites. It's useful when managing posts on different platforms. With a single click you can push a post to more than 100 sites.
17+
18+
### Features
19+
20+
* **Push syndication** - Publish content to multiple WordPress sites simultaneously
21+
* **Pull syndication** - Import content from RSS/XML feeds automatically
22+
* **Multiple transport methods** - WordPress.com REST API, XML-RPC, and RSS/XML feeds
23+
* **Site groups** - Organise destination sites into groups for easier management
24+
* **Scheduled syndication** - Content syncs automatically when posts are published
25+
* **WP-CLI support** - Manage syndication from the command line
26+
27+
## Installation
28+
29+
1. Upload the `syndication` folder to `/wp-content/plugins/` or install via the WordPress admin.
30+
2. Activate the plugin through the 'Plugins' menu in WordPress.
31+
3. Visit **Settings > Push Syndication** to configure the plugin.
32+
4. When editing a post, use the "Syndication" metabox to select destination sites/groups.
33+
34+
## Usage
35+
36+
Here's how it works:
37+
38+
1. Configure which post types are "pushable", as well as whether you'd like syndicated posts to be deleted when the master post is deleted.
39+
2. Register and group your sites into "Sitegroups" in settings.
40+
3. In the WordPress posting interface, you'll see a new "Syndication" metabox, with all of your sitegroups listed. Select the sitegroups you want to push to and the post will be automatically syndicated to your other sites when it's published and updated.
41+
42+
### WordPress.com REST API
43+
44+
To push content using the WordPress.com REST API you need to create an [application](https://developer.wordpress.com/apps/new/) from the [WordPress.com Developer Resources](https://developer.wordpress.com/) site - and you can also generate API tokens directly from the plugin's settings page.
45+
46+
Fill in the client ID and client secret as displayed on the app page, and click the authorize button to get directed to the authorization page on WordPress.com. Select which site you'd like to push to and click "Authorize", at which point you'll be redirected back to your settings page-which will now display the API token, Blog ID, and Blog URL. You can now use this information to register your WordPress.com site.
47+
48+
### Using WordPress XML-RPC
49+
50+
To push content using XML-RPC, you'll need to enable XML-RPC on the destination site and provide the site URL, username, and password.
51+
52+
Note that if you have two-factor authentication enabled on the destination site, you will need to create an application password to use when adding a new site. Using your regular password will not work.
53+
54+
### Pulling from RSS Feeds
55+
56+
Push Syndication can ingest RSS feeds into your site. It's as simple as adding a site, setting the transport type to "RSS (pull)" and entering an RSS URL and title.
57+
58+
To add a site, go to the WordPress admin and find the "Sites" menu item, below Settings and choose "Add New". In the settings, you'll be able to customise the post's type, status, comment settings, pingback settings and category.
59+
60+
### Secure Credential Storage
61+
62+
To store passwords securely, define an encryption key in your `wp-config.php`:
63+
64+
```php
65+
define( 'PUSH_SYNDICATE_KEY', 'your-random-encryption-key-here' );
66+
```
67+
68+
This key is used to encrypt credentials when saved to the database.
69+
70+
## Frequently Asked Questions
71+
72+
### What transport methods are supported?
73+
74+
* **WordPress.com REST API** - For sites hosted on WordPress.com or using Jetpack
75+
* **XML-RPC** - For self-hosted WordPress sites with XML-RPC enabled
76+
* **RSS/XML feeds** - For pulling content from any feed source
77+
78+
### Can I syndicate to non-WordPress sites?
79+
80+
The push functionality requires WordPress on the destination site. However, pull syndication can import content from any valid RSS or XML feed.
81+
82+
### Does it work with multisite?
83+
84+
Yes, Syndication works with WordPress multisite installations. You can syndicate content between subsites or to external sites.
85+
86+
## Changelog
87+
88+
See [CHANGELOG.md](CHANGELOG.md) for the full changelog.
89+
90+
## Contributing
91+
92+
Pull requests are welcome on [GitHub](https://github.com/Automattic/syndication).

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"@php ./vendor/bin/phpcbf -q"
4545
],
4646
"i18n": [
47-
"@php wp i18n make-pot . ./languages/syndication.pot"
47+
"@php wp i18n make-pot . ./languages/push-syndication.pot --domain=push-syndication"
4848
],
4949
"lint": [
5050
"@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . -e php --exclude vendor --exclude .git"

0 commit comments

Comments
 (0)