WordPress功能函数add_feed()

WordPress功能函数add_feed()

218
2021-03-22 14:19:17

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;

}

更新日志:

WordPress功能函数add_feed() (https://www.wpmee.com/) WordPress开发教程 第1张

用户贡献的笔记

(由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' );

}

}

喜欢这个文章就点个赞分享给好友吧~

END

发表评论

一次支付终身使用
免费版本更新
靠谱的技术支持
成为会员