add_feed( string $feedname, callable $function )
Add a new feed type like /atom1/.
Description Description
Parameters Parameters
- $feedname
-
(string) (Required) Feed name.
- $function
-
(callable) (Required) Callback to run on feed display.
Return Return
(string) Feed action name.
Source Source
File: wp-includes/rewrite.php
function add_feed( $feedname, $function ) {
global $wp_rewrite;
if ( ! in_array( $feedname, $wp_rewrite->feeds ) ) {
$wp_rewrite->feeds[] = $feedname;
}
$hook = 'do_feed_' . $feedname;
// Remove default function hook
remove_action( $hook, $hook );
add_action( $hook, $function, 10, 2 );
return $hook;
}
Expand full source code Collapse full source code View on Trac
Changelog Changelog
| Version | Description |
|---|---|
| 2.1.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
When a new custom feed is added, the endpoint will render using a `Content-Type: application/octet-stream; charset=UTF-8` by default. It would be useful to document working with content types in combination with add_feed().
For example either:
function add_custom_feed() { add_feed( 'custom', 'render_custom_feed' ); } add_action( 'init', 'add_custom_feed' ); function render_custom_feed() { header( 'Content-Type: application/rss+xml' ); echo 'aye!'; }or:
function add_custom_feed() { add_feed( 'custom', 'render_custom_feed' ); } add_action( 'init', 'add_custom_feed' ); function custom_feed_content_type( $content_type, $type ) { if( 'custom' == $type ) { $content_type = 'application/rss+xml'; } return $content_type; } add_filter( 'feed_content_type', 'custom_feed_content_type', 10, 2 ); function render_custom_feed() { echo 'aye!'; }Expand full source codeCollapse full source code
will work.
See: https://core.trac.wordpress.org/ticket/36334