activitystrea.ms) Feeds
Author: Matthias Pfefferle
Author URI: http://notizblog.org
Version: 1.0.0
*/
add_action('atom_ns', array('ActivityExtension', 'add_atom_activity_namespace'));
add_action('atom_entry', array('ActivityExtension', 'add_atom_activity_object'));
add_action('atom_author', array('ActivityExtension', 'add_atom_activity_author')); // run before output
add_action('comment_atom_ns', array('ActivityExtension', 'add_atom_activity_namespace'));
add_action('comment_atom_entry', array('ActivityExtension', 'add_comment_atom_activity_object'));
add_action('wp_head', array('ActivityExtension', 'add_html_header'), 5);
add_filter('query_vars', array('ActivityExtension', 'query_vars'));
add_filter('feed_content_type', array('ActivityExtension', 'feed_content_type'), 10, 2);
// add 'json' as feed
add_action('do_feed_as1', array('ActivityExtension', 'do_feed_as1'), 10, 1);
add_action('init', array('ActivityExtension', 'init'));
add_filter('as1_object_type', array('ActivityExtension', 'post_object_type'), 10, 2);
// push json feed
add_filter('pshb_feed_urls', array('ActivityExtension', 'publish_to_hub'));
register_activation_hook(__FILE__, array('ActivityExtension', 'flush_rewrite_rules'));
register_deactivation_hook(__FILE__, array('ActivityExtension', 'flush_rewrite_rules'));
/**
* ActivityStream Extension
*
* @author Matthias Pfefferle
*/
class ActivityExtension {
/**
* init function
*/
public static function init() {
// add the as1 feed
add_feed('as1', array('ActivityExtension', 'do_feed_as1'));
}
/**
* add 'callback' as a valid query variables.
*
* @param array $vars
* @return array
*/
public static function query_vars($vars) {
$vars[] = 'callback';
$vars[] = 'feed';
$vars[] = 'pretty';
return $vars;
}
/**
* adds "as1" content-type
*
* @param string $content_type the default content-type
* @param string $type the feed-type
* @return string the as1 content-type
*/
public static function feed_content_type($content_type, $type) {
if ($type == "as1") {
return 'application/stream+json';
}
return $content_type;
}
/**
* reset rewrite rules
*/
public static function flush_rewrite_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
/**
* echos autodiscovery links
*/
public static function add_html_header() {
// check if theme author want to display feed links
if ( !current_theme_supports('automatic-feed-links') )
return;
?>
" title="" href="" />
" title="" href="" />
comment_count > 0 ) {
?>
" title="" href="" />
http://activitystrea.ms/schema/1.0/post
http://activitystrea.ms/schema/1.0/
]]>
]]>
http://activitystrea.ms/schema/1.0/post
http://activitystrea.ms/schema/1.0/comment
]]>
http://activitystrea.ms/schema/1.0/article
]]>
]]>
http://activitystrea.ms/schema/1.0/person