atshift Feed Builder creates purpose-specific public feeds from structured information stored in WordPress.
The first release includes:
- Multiple feed configurations.
- Separate creation flows for replacing a WordPress standard RSS feed or adding a custom RSS 2.0 or JSON Feed 1.1 feed.
- Public post type selection.
- Author, public taxonomy term, and allow-listed custom field filters.
- Format-specific mapping of standard output fields.
- WordPress, fixed text, atshift Fields, post-author UPF, explicitly selected post_meta, and optional Pods API value sources.
- Optional field-name integrations for ACF / Secure Custom Fields, Meta Box, and Carbon Fields.
- A public source-adapter API for additional plugin integrations.
- Independent publisher, article-author, primary-source, and reviewer mappings.
- Main image fallback mapping when the primary image source is empty.
- A reader-first preview of the first real item in the current feed order, with matching XML or JSON source in a secondary tab.
- Personal-information warnings and hard exclusion of authentication and permission data.
- Stable item IDs, ETag, Last-Modified, and response caching.
- Existing WordPress feed URLs remain unchanged when their RSS output is replaced.
- Per-feed controls for replacing or disabling standard feeds and advertising custom feeds in the document head.
atshift Fields and atshift User Profile Fields are optional integrations. atshift Feed Builder remains independently usable for standard WordPress post data.
Developer integration
Plugins can add selectable mapping sources with the
atshift_feed_builder_source_adapters filter. Register the filter on
plugins_loaded before priority 20 and provide an object that implements
Atshift_Feed_Builder_Source_Adapter.
add_action(
'plugins_loaded',
static function () {
if ( ! interface_exists( 'Atshift_Feed_Builder_Source_Adapter' ) ) {
return;
}
add_filter(
'atshift_feed_builder_source_adapters',
static function ( $adapters ) {
$adapters['example'] = new class implements Atshift_Feed_Builder_Source_Adapter {
public function get_id() {
return 'example';
}
public function get_label() {
return 'Example fields';
}
public function is_available() {
return true;
}
public function get_fields() {
return array(
'rating' => array(
'id' => 'rating',
'label' => 'Rating',
'type' => 'number',
'sensitive' => false,
),
);
}
public function get_values( $post, $field_ids ) {
$values = array();
if ( in_array( 'rating', $field_ids, true ) ) {
$values['rating'] = get_post_meta( $post->ID, '_example_rating', true );
}
return $values;
}
};
return $adapters;
}
);
},
10
);
Field definitions may use
string,
url,
image,
html,
number,
boolean,
datetime, or
list. Set
sensitive to
true to display a personal-information warning in the editor. For integrations where administrators enter a field key manually, implement
Atshift_Feed_Builder_Manual_Source_Adapter as well.
Adapters must expose only values intended for public feeds and must validate manually entered keys. Authentication, session, token, capability, password, and other protected values must never be returned.
See the
adapter contract and
bundled adapter examples for the complete API.
- Upload the plugin folder to
/wp-content/plugins/.
- Activate the plugin from the Plugins screen.
- Open atshift Feed Builder > Add New Feed in the WordPress administration menu.
- Choose whether to replace a WordPress standard RSS feed or add a custom RSS 2.0 or JSON Feed 1.1 feed.
- Select the posts, pages, or public custom post types to include.
- Map the output fields, then save the feed.
- Review the first-item preview and the XML or JSON source before sharing the feed URL.
atshift Fields and atshift User Profile Fields are optional. When they are active, their field definitions and saved values become available as mapping sources.