Make RSS think posts are new?

时间:2015-05-02 作者:Christopher

I\'m wanting to use the MailChimp RSS to Email Campaign mechanism to send a weekly email of posts to list subscribers.

This works just fine in standard use, but the twist is that I don\'t want MailChimp to only pick up new posts. Each week I want it to include all posts in the Newsletter category - regardless of whether it included them in last week\'s email (some announcements should run for several weeks).

Is there a way to reset the posts so that they appear new to the RSS feed each week?

Many thanks!

1 个回复
SO网友:birgire

这里有一个想法,我们可以完全控制我们的新闻稿提要:

使用自定义帖子选择和拖放排序进行提要:

我们可以使用导航菜单UI,精确选择要在提要中显示的帖子,并使用拖放对其进行排序。

我们需要遵循以下两个步骤:

Step 1) 使用菜单名称创建菜单newsletter/wp-admin/nav-menus.php 页码::

Select newsletter posts

我们将所有帖子添加到菜单中,我们需要将其包含在新闻稿中。

然后,我们使用菜单UI的拖放功能根据需要对其进行排序。

Step 2) 使用以下代码段:

/**
 * Custom Newsletter Feed
 *
 * Supports drag/drop for feed items.
 *
 * Create a menu with the \'newsletter\' menu name and 
 * access the feed at /feed/?wpse_feed=newsletter
 *
 * @see http://wordpress.stackexchange.com/a/186121/26350
 */

add_action( \'pre_get_posts\', function( $q )
{
    $menu = \'newsletter\'; // Our custom nav menu.

    if(    $q->is_feed()
        && $menu === filter_input( INPUT_GET, \'wpse_feed\' )
    ) {
        $q->set( \'post__in\', 
            (array) wp_list_pluck( 
                wp_get_nav_menu_items( $menu ), 
                \'object_id\' 
            ) 
        );
        $q->set( \'orderby\',   \'post__in\' );
        $q->set( \'post_type\', \'any\'      );

        //-------------------------------------------------
        // Modify the pubDate. 
        // Let the first post be created at midnight 
        // and then add 1 sec for each get_post_time() call
        //--------------------------------------------------
        add_filter( \'get_post_time\', function ( $time, $d, $gmt )
        {
            static $count = 0;
            return date( $d, strtotime( \'midnight\' ) + $count++ );
        }, 10, 3 );

    }
} );
在这里,我们修改pubDate 从午夜开始,然后我们在get_post_time() 作用所以这些帖子都会有不同的pubDate 这将与前一天不同。

然后,我们可以访问定制的新闻稿源,网址为:

http://example.tld/feed/?wpse_feed=newsletter
这可以扩展以支持更多定制提要,但希望您可以根据需要进行调整。

结束

相关推荐

如何通过Simplepie RSS订阅获取超过25个项目?

我有一个包含50个项目的提要,但似乎无论我做什么,它总是只返回25个项目。$feed->set_item_limit(50); 或$rss_items = $rss->get_items(0,50); 这些都没有任何效果,我在类源代码中也没有看到任何对数字25的引用,我不明白。提要是http://gdata.youtube.com/feeds/base/users/silviavaldemoros/uploads?alt=rss&v=2&orderby=published&am