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/ <![CDATA[<?php the_title(); ?>]]> ]]> http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/comment ]]> http://activitystrea.ms/schema/1.0/article <![CDATA[<?php the_title(); ?>]]> ]]> http://activitystrea.ms/schema/1.0/person