register_parser( Feed_Parser_SimplePie::SLUG, new Feed_Parser_SimplePie() ); }, 9 ); add_action( 'friends_load_parsers', function ( Feed $friends_feed ) { require_once __DIR__ . '/feed-parsers/class-feed-parser-microformats.php'; $friends_feed->register_parser( Feed_Parser_Microformats::SLUG, new Feed_Parser_Microformats() ); }, 9 ); add_action( 'friends_load_parsers', function ( Feed $friends_feed ) { require_once __DIR__ . '/feed-parsers/class-feed-parser-json-feed.php'; $friends_feed->register_parser( Feed_Parser_JSON_Feed::SLUG, new Feed_Parser_JSON_Feed() ); }, 9 ); add_action( 'friends_load_parsers', function ( \Friends\Feed $friends_feed ) { if ( ! class_exists( '\Activitypub\Activitypub' ) ) { // ActivityPub plugin not active. return; } global $wp_filter; if ( isset( $wp_filter['friends_load_parsers']->callbacks[10] ) && class_exists( '\\ReflectionFunction' ) ) { // Unhook the parser from ActivityPub 0.14. foreach ( $wp_filter['friends_load_parsers']->callbacks[10] as $key => $hook ) { $r = new \ReflectionFunction( $hook['function'] ); if ( \str_ends_with( $r->getFileName(), 'activitypub.php' ) ) { remove_filter( 'friends_load_parsers', $hook['function'], 10 ); break; } } } require_once __DIR__ . '/feed-parsers/class-feed-parser-activitypub.php'; $friends_feed->register_parser( Feed_Parser_ActivityPub::SLUG, new Feed_Parser_ActivityPub( $friends_feed ) ); }, 9 );