PluginProbe
NodeInfo(2) / 2.3.0
NodeInfo(2) v2.3.0
trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 2.0.0 2.1.0 2.1.1 2.2.0 2.3.0 2.3.1 3.0.0 3.1.0
nodeinfo / nodeinfo.php

nodeinfo.php in NodeInfo(2) 2.3.0, at nodeinfo.php

85 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: NodeInfo
4 * Plugin URI: https://github.com/pfefferle/wordpress-nodeinfo/
5 * Description: NodeInfo is an effort to create a standardized way of exposing metadata about a server running one of the distributed social networks.
6 * Version: 2.3.0
7 * Author: Matthias Pfefferle
8 * Author URI: https://notiz.blog/
9 * License: MIT
10 * License URI: http://opensource.org/licenses/MIT
11 * Text Domain: nodeinfo
12 * Domain Path: /languages
13 */
14
15 /**
16 * Initialize plugin
17 */
18 function nodeinfo_init() {
19 require_once __DIR__ . '/includes/class-nodeinfo-endpoint.php';
20 require_once __DIR__ . '/includes/functions.php';
21
22 // Configure the REST API route
23 add_action( 'rest_api_init', array( 'Nodeinfo_Endpoint', 'register_routes' ) );
24
25 // Add Webmention and Host-Meta discovery
26 add_filter( 'webfinger_user_data', array( 'Nodeinfo_Endpoint', 'render_jrd' ), 10, 3 );
27 add_filter( 'webfinger_post_data', array( 'Nodeinfo_Endpoint', 'render_jrd' ), 10, 3 );
28 add_filter( 'host_meta', array( 'Nodeinfo_Endpoint', 'render_jrd' ) );
29 }
30 add_action( 'init', 'nodeinfo_init', 9 );
31
32 /**
33 * Plugin Version Number.
34 */
35 function nodeinfo_version() {
36 $meta = nodeinfo_get_plugin_meta( array( 'Version' => 'Version' ) );
37
38 return $meta['Version'];
39 }
40
41 /**
42 * Add rewrite rules
43 */
44 function nodeinfo_add_rewrite_rules() {
45 add_rewrite_rule( '^.well-known/nodeinfo', 'index.php?rest_route=/nodeinfo/discovery', 'top' );
46 add_rewrite_rule( '^.well-known/x-nodeinfo2', 'index.php?rest_route=/nodeinfo2/1.0', 'top' );
47 }
48 add_action( 'init', 'nodeinfo_add_rewrite_rules', 1 );
49
50 /**
51 * `get_plugin_data` wrapper
52 *
53 * @return array the plugin metadata array
54 */
55 function nodeinfo_get_plugin_meta( $default_headers = array() ) {
56 if ( ! $default_headers ) {
57 $default_headers = array(
58 'Name' => 'Plugin Name',
59 'PluginURI' => 'Plugin URI',
60 'Version' => 'Version',
61 'Description' => 'Description',
62 'Author' => 'Author',
63 'AuthorURI' => 'Author URI',
64 'TextDomain' => 'Text Domain',
65 'DomainPath' => 'Domain Path',
66 'Network' => 'Network',
67 'RequiresWP' => 'Requires at least',
68 'RequiresPHP' => 'Requires PHP',
69 'UpdateURI' => 'Update URI',
70 );
71 }
72
73 return get_file_data( __FILE__, $default_headers, 'plugin' );
74 }
75
76 /**
77 * Flush rewrite rules;
78 */
79 function nodeinfo_flush_rewrite_rules() {
80 nodeinfo_add_rewrite_rules();
81 flush_rewrite_rules();
82 }
83 register_activation_hook( __FILE__, 'nodeinfo_flush_rewrite_rules' );
84 register_deactivation_hook( __FILE__, 'flush_rewrite_rules' );
85