PHPackages                             alleyinteractive/feed-consumer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. alleyinteractive/feed-consumer

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

alleyinteractive/feed-consumer
==============================

Ingest external feeds and other data sources into WordPress

v1.2.1(5mo ago)114.8k↓30%1[5 issues](https://github.com/alleyinteractive/feed-consumer/issues)[3 PRs](https://github.com/alleyinteractive/feed-consumer/pulls)GPL-2.0-or-laterPHPPHP ^8.1CI passing

Since Dec 13Pushed 2mo ago21 watchersCompare

[ Source](https://github.com/alleyinteractive/feed-consumer)[ Packagist](https://packagist.org/packages/alleyinteractive/feed-consumer)[ Docs](https://github.com/alleyinteractive/feed-consumer)[ RSS](/packages/alleyinteractive-feed-consumer/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (9)Dependencies (6)Versions (34)Used By (0)

Feed Consumer
=============

[](#feed-consumer)

Contributors: srtfisher

Tags: alleyinteractive, feed-consumer, wordpress-plugin

Stable tag: 1.2.1

Requires at least: 6.5

Tested up to: 6.0

Requires PHP: 8.2

License: GPL v2 or later

[![All Pull Request Tests](https://github.com/alleyinteractive/feed-consumer/actions/workflows/all-pr-tests.yml/badge.svg)](https://github.com/alleyinteractive/feed-consumer/actions/workflows/all-pr-tests.yml)

Ingest external feeds and other data sources into WordPress.

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require alleyinteractive/feed-consumer
```

### Requirements

[](#requirements)

This plugin requires [Fieldmanager](https://github.com/alleyinteractive/wordpress-fieldmanager)to be installed and activated. It is also recommended to use [Alley Logger](https://github.com/alleyinteractive/logger) as well but that is not required.

Usage
-----

[](#usage)

Activate the plugin in WordPress and you will see the new Feeds post type available for use:

[![Screenshot of feed post type](https://user-images.githubusercontent.com/346399/208514114-06f0cc86-b4a4-42aa-b48c-b57eb84fe8fa.png)](https://user-images.githubusercontent.com/346399/208514114-06f0cc86-b4a4-42aa-b48c-b57eb84fe8fa.png)

Feed Consumer is a plugin that allows you to ingest external feeds and other data sources into WordPress. It is built to be extensible and can be used to ingest data from any source that can be represented as a PHP array.

### Creating a Feed

[](#creating-a-feed)

To create a feed, navigate to the Feeds post type and click Add New. You will see a form that allows you to configure the feed. The feed configuration includes the following fields:

- **Title**: The name of the feed. This is used to identify the feed in the admin.
- **Processors**: The processors to run on the feed. Processors are used to are classes that define the extractor, transformer, and loader to use for the feed. For more information, see [Processors](#processors).

The selected processor will also display any settings for the processor's extractor, transformer, and loader.

Processors
----------

[](#processors)

Processors are the core of Feed Consumer. They define the extractor, transformer, and loader to use for the feed.

Out of the box, Feed Consumer includes the following processors:

- **JSON Processor**: Extracts data from a JSON feed into WordPress posts.
- **RSS Processor**: Extracts data from an RSS feed into WordPress posts.
- **XML Processor**: Extracts data from an XML feed into WordPress posts.

### Creating a Processor

[](#creating-a-processor)

```
add_filter( 'feed_consumer_processors', function ( array $processors ) {
	$processors[] = My_Plugin\Processor::class;

	return $processors;
} );
```

### Extractors

[](#extractors)

Extractors will take extract data from a remote source and return it as data to be passed to a transformer. Out of the box, Feed Consumer includes JSON, XML, and RSS transformers among others that can be used to extract data from a variety of sources. You can also create your own extractor by implementing the `Feed_Consumer\Contracts\Extractor` interface.

### Transformers

[](#transformers)

Transformers will take extracted data and transform it into a format that can be loaded into WordPress. Out of the box, Feed Consumer includes a `Post_Loader`that will take transformed data and load it into WordPress as posts. You can also create your own transformer by implementing the `Feed_Consumer\Contracts\Transformer` interface.

### Loaders

[](#loaders)

Loaders will take transformed data and load it where configured. Out of the box, the `Post_Loader` will be the most common loader used to take transformed data and load it into WordPress as posts.

You can also create your own loader by implementing the `Feed_Consumer\Contracts\Loader` interface.

#### Post Loader

[](#post-loader)

The post loader will take transformed data and load it into WordPress. It will also transform the content into Gutenberg blocks by default via [wp-block-converter](https://github.com/alleyinteractive/wp-block-converter/).

Integrations
------------

[](#integrations)

### Byline Manager

[](#byline-manager)

The plugin includes an integration with [Byline Manager](https://github.com/alleyinteractive/byline-manager) to automatically set the byline for a post based on the feed item's author. Once the Byline Manager plugin is enabled, the settings fields will appear on the feed to set the default byline and to optionally use the feed item's author as the byline.

Hooks
-----

[](#hooks)

### `feed_consumer_run_complete`

[](#feed_consumer_run_complete)

Fires when a feed has completed running. The feed ID, loaded data, and processor class are passed to the hook.

```
add_action( 'feed_consumer_run_complete', function ( int $feed_id, $loaded_data, string $processor ) {
	// Do something.
}, 10, 3 );
```

### `feed_consumer_extractor_error`

[](#feed_consumer_extractor_error)

Fires when an extractor encounters an error. The extractor response and extractor class are passed to the hook.

```
add_action( 'feed_consumer_extractor_error', function ( $response, \Feed_Consumer\Contracts\Extractor $extractor ) {
	// Do something.
}, 10, 2 );
```

### `feed_consumer_pre_feed_fetch`

[](#feed_consumer_pre_feed_fetch)

Fires when a feed is about to be fetched.

```
use Mantle\Http_Client\Pending_Request;
use Feed_Consumer\Contracts\Processor;

add_action( 'feed_consumer_pre_feed_fetch', function ( Pending_Request $request, Processor $processor, array $settings ) {
	// Do something.
}, 10, 3 );
```

### `feed_consumer_feed_fetch`

[](#feed_consumer_feed_fetch)

Fires when a feed has been fetched.

```
use Mantle\Http_Client\Response;
use Feed_Consumer\Contracts\Processor;

add_action( 'feed_consumer_feed_fetch', function ( Response $response, Processor $processor, array $settings ) {
	// Do something.
}, 10, 3 );
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Credits
-------

[](#credits)

This project is actively maintained by [Alley Interactive](https://github.com/alleyinteractive). Like what you see? [Come work with us](https://alley.com/careers/).

- [Sean Fisher](https://github.com/srtfisher)
- [All Contributors](../../contributors)

License
-------

[](#license)

The GNU General Public License (GPL) license. Please see [License File](LICENSE) for more information.

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance70

Regular maintenance activity

Popularity30

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 64% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~135 days

Recently: every ~32 days

Total

9

Last Release

157d ago

Major Versions

v0.1.1 → v1.0.02024-08-08

PHP version history (2 changes)v0.1.0PHP ^8.0

v1.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/338d27065b1074f2d66d049d742f22996dd137eef6f91bc8f75350ceee1e8ef2?d=identicon)[srtfisher](/maintainers/srtfisher)

---

Top Contributors

[![srtfisher](https://avatars.githubusercontent.com/u/346399?v=4)](https://github.com/srtfisher "srtfisher (121 commits)")[![mogmarsh](https://avatars.githubusercontent.com/u/11542164?v=4)](https://github.com/mogmarsh "mogmarsh (23 commits)")[![dlh01](https://avatars.githubusercontent.com/u/697432?v=4)](https://github.com/dlh01 "dlh01 (12 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (10 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (10 commits)")[![mboynes](https://avatars.githubusercontent.com/u/465154?v=4)](https://github.com/mboynes "mboynes (5 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (5 commits)")[![nikkifurls](https://avatars.githubusercontent.com/u/19735805?v=4)](https://github.com/nikkifurls "nikkifurls (3 commits)")

---

Tags

feedswordpresswordpress-pluginalleyinteractivefeed-consumer

### Embed Badge

![Health badge](/badges/alleyinteractive-feed-consumer/health.svg)

```
[![Health](https://phpackages.com/badges/alleyinteractive-feed-consumer/health.svg)](https://phpackages.com/packages/alleyinteractive-feed-consumer)
```

###  Alternatives

[alleyinteractive/wp-block-converter

Convert HTML into Gutenberg Blocks with PHP

62321.0k1](/packages/alleyinteractive-wp-block-converter)[alleyinteractive/wp-curate

Plugin to curate homepages and other landing pages

10154.3k](/packages/alleyinteractive-wp-curate)[alleyinteractive/wp-bulk-task

A library to assist with running performant bulk tasks against WordPress objects.

21326.8k4](/packages/alleyinteractive-wp-bulk-task)[alleyinteractive/wp-alleyvate

Defaults for WordPress sites by Alley.

3434.2k](/packages/alleyinteractive-wp-alleyvate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
