为每个站点用户创建单独的RSS提要

时间:2016-01-12 作者:fubeca

我正在尝试为我网站的每个用户创建一个唯一的RSS提要。这是我在函数中使用的代码。php尝试此操作。加载页面时,我没有看到任何php错误,但没有创建提要。有什么想法吗?

function init_subscribers_feeds() {

    $subscribers = get_users(\'role=subscriber\');

    function create_feed($id) {
        add_feed($id, \'feed_subscribers_do\');
    }
    function feed_subscribers_do() {
        get_template_part(\'feed\', \'subscribers\');
    }

    foreach ($subscribers as $subscriber) {
        $id = esc_html($subscriber->user_login);
        create_feed($id);
    }

}
init_subscribers_feeds();

1 个回复
最合适的回答,由SO网友:fubeca 整理而成

我能弄明白这一点。下面是代码,解释如下。

$subscribers = get_users(\'role=subscriber\');
foreach ($subscribers as $subscriber) {
    $subscriber_id = esc_html($subscriber->user_login);
    add_action(\'init\', function() use($subscriber_id) {
        add_feed($subscriber_id, function() {
            get_template_part(\'feed\', \'subscribers\');
        });
    });
    $wp_rewrite->flush_rules($hard);
}
首先,根据TomJ Newell在原始问题下的评论中的评论,我停止了嵌套函数。

其次,我发现在添加了一个新feed之后,WP重写规则需要更新。这可以在设置中手动完成,可以重新保存永久链接设置,也可以如上所示使用$wp\\u rewrite。

第三,要使用变量$subscriber\\u id,我需要将其包含在带有“use()”的匿名函数中。

最后,我并没有试图将事情分割成函数并调用这些函数,而是将所有旧函数包装成匿名函数。

现在一切都很顺利。

相关推荐

显示RSS提要中自定义帖子中的自定义域

我已经为此挣扎了几天,但仍然不知道该怎么做。我想做的是在RSS提要中添加一个自定义表字段,所以我使用代码片段来解决这个问题。下面是我的nw,但我相信我已经尝试了所有可能的组合,我可以在WP site.function featuredtoRSS($content) { if ( has_post_thumbnail( $post->ID ) && get_post_type() == \'product\'){ global $wpdb;