你可以看看
ABSPATH . WPINC . \'feed-*.*\';
查看示例。WP core具有以下协议的馈送温度:
编写插件时,您可以将以下快速测试插件作为基础。它添加了一个提要名称custom-feed
到提要列表。
<?php
/* Plugin Name: (WPSE) #172796 Custom Feed */
add_action( \'init\', function()
{
add_feed( \'custom-feed\', function()
{
/** @var \\WP_Query $wp_query */
global $wp_query;
// Custom conditions when to output the feed - and when not
if ( \'foo\' !== get_query_var( \'name\' ) )
return;
load_template( plugin_dir_path( __FILE__ ).\'templates/feed-rss2.php\' );
} );
} );
要快速查看默认提要,只需将其转储
var_dump( $GLOBALS[\'wp_rewrite\']->feeds );
当您激活上述测试插件时,您应该发现
custom-feed
作为数组中的最后一个条目。
在任何回调中,您都应该检查您是否正在处理新的自定义提要:
$wp_query->is_feed( [ \'custom-feed\', ] );
要获取有效的提要,您必须设置
header
. Core的功能如下:
header( sprintf(
\'Content-Type: %s; charset=%s\',
feed_content_type( \'rss-http\' ),
get_option( \'blog_charset\' )
), true );
然后是实际的XML开头标记:
echo \'<?xml version="1.0" encoding="\'.get_option(\'blog_charset\').\'"?\'.\'>\';
之后,有一个地方可以让插件挂接:
do_action( \'rss_tag_pre\', \'rss2\' );
最后是
<rss version="2.0" ...
标记打开和另一个钩子以添加自定义名称空间
do_action( \'rss2_ns\' );
这个清单不胜枚举。你能做的最好的事情就是把核心文件作为你自己feed的蓝图(将它们复制/粘贴到你的插件并改变输出)。