query_vars)) { $server = new AtomPubServer(); $server->handle_request($wp->query_vars); // This doesn't feel quite right. There should be a better way to stop a request exit; } } function atompub_query_vars($vars) { foreach(AtomPubRequest::$query_parameter_keys as $key) { $vars[] = $key; } return $vars; } // Hook into wordpress to transform /atompub => /index.php?atompub=service add_filter('rewrite_rules_array', 'atompub_insert_rewrite_rules'); add_filter('query_vars', 'atompub_insert_query_vars'); add_filter('init', 'atompub_flush_rules'); function atompub_flush_rules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } function atompub_insert_rewrite_rules($rules) { $newrules = array(); $newrules['(atompub)/(\d*)$'] = 'index.php?atompub&atompub_1=$matches[1]'; return $newrules + $rules; } function atompub_insert_query_vars($vars) { array_push($vars, 'id'); return $vars; } register_activation_hook(__FILE__, 'atompub_activate'); function atompub_activate() { AtomPubCron::activate(); } register_deactivation_hook(__FILE__, 'atompub_activate'); function atompub_deactivate() { AtomPubCron::dectivate(); } // Hook into the publishing functions add_action('deleted_post', 'update_hubs'); add_action('private_to_publish', 'update_hubs'); add_action('publish_post', 'update_hubs'); add_action('publish_page', 'update_hubs'); //add_action('publish_phone', 'update_hubs'); //add_action('save_post', 'update_hubs'); function update_hubs($post_id) { error_log("Post updated: $post_id, notifying hubs."); Pubsubhubbub::notify_hubs(); } ?>