返回介绍

add_feed()

发布于 2017-07-23 16:11:44 字数 2158 浏览 1394 评论 0 收藏 0

add_feed( string $feedname, callable $function )

添加新的Feed地址,例如想这样的 /atom1/


参数

$feedname
(string)
(Required)
Feed name.
$function
(callable)
(Required)
Callback to run on feed display.

返回值

(string) Feed动作的名称。


源代码

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;
}

更新日志

Versiondescription
2.1.0Introduced.

相关函数

Uses

  • wp-includes/plugin.php:remove_action()
  • wp-includes/plugin.php:add_action()

User Contributed Notes

当添加一个新的Feed,用户浏览器会以 Content-Type: application/octet-stream; charset=UTF-8 来解析文档。

例子

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!';
}

或者下面的示例

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!';
}

上面两个示例都能很好的工作。

参加: https://core.trac.wordpress.org/ticket/36334

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文