WordPress功能函数add_feed()
WordPress功能函数add_feed(),添加一个新的提要类型,如/atom1/。 用法: add_fe…
WordPress功能函数add_feed(),添加一个新的提要类型,如/atom1/。
用法:
add_feed( string $feedname, callable $function )
参数:
$feedname
(string) (必需) Feed name.
$function
(callable) (必需) 在提要显示上运行的回调。
返回:
(string) 动作名称。
更多信息
需要一次性使用flush_rules()才能生效。
来源:
文件: wp-includes/rewrite.php
function add_feed( $feedname, $function ) {
global $wp_rewrite;
if ( ! in_array( $feedname, $wp_rewrite->feeds, true ) ) {
$wp_rewrite->feeds[] = $feedname;
}
$hook = ‘do_feed_’ . $feedname;
// Remove default function hook.
remove_action( $hook, $hook );
add_action( $hook, $function, 10, 2 );
return $hook;
}
更新日志:
用户贡献的笔记
(由Steven Word于4年前贡献)
当添加一个新的自定义提要时,端点将使用’ Content-Type: application/octet-stream;默认字符集= utf – 8 ‘。结合使用add_feed()来记录使用内容类型是很有用的。
例如:
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
(MakeWebBetter贡献- 10个月前)
使用add_feed ()
function wpdocs_add_mwb_feed() {
add_feed( ‘mwbfeed’, ‘wpdocs_makewebbetter_feed’ );
}
add_action( ‘init’, ‘wpdocs_add_mwb_feed’ );
function wpdocs_makewebbetter_feed() {
add_filter( ‘pre_option_rss_use_excerpt’, ‘__return_zero’ );
load_template( PATHTEMPLATEFILE . ‘/feeds/a-feed-template.php’ );
}
(由开发者贡献- 6个月前)
基于带参数的自定义WP查询的RSS提要
add_action( ‘init’, ‘wpdocs_custom_feed_rss2’ );
function wpdocs_custom_feed_rss2() {
// Create your feed name like this : https://yoursite.com/wpdocs_custom?tag=test
add_feed( ‘wpdocs_custom’, ‘wpdocs_change_main_query’ );
function wpdocs_change_main_query() {
// Set right headers for RSS Feed
header( ‘Content-Type: application/rss+xml’ );
// Get main WP Query
global $wp_query;
// Get parameters in url
if ( ! empty( $_GET[‘tag’] ) ) :
$tag = $_GET[‘tag’];
endif;
// Overwrite main WP Query with yours
$wp_query = new WP_Query(
array(
‘post_type’ => ‘any’,
‘fields’ => ‘ids’,
‘tag’ => $tag,
)
);
// Use the basic template to load your custom RSS Feed
get_template_part( ‘feed’, ‘rss2’ );
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!