8 /** |
8 /** |
9 * Whether this is an XML-RPC Request |
9 * Whether this is an XML-RPC Request |
10 * |
10 * |
11 * @var bool |
11 * @var bool |
12 */ |
12 */ |
13 define('XMLRPC_REQUEST', true); |
13 define( 'XMLRPC_REQUEST', true ); |
14 |
14 |
15 // Some browser-embedded clients send cookies. We don't want them. |
15 // Some browser-embedded clients send cookies. We don't want them. |
16 $_COOKIE = array(); |
16 $_COOKIE = array(); |
17 |
17 |
18 // A bug in PHP < 5.2.2 makes $HTTP_RAW_POST_DATA not set by default, |
18 // A bug in PHP < 5.2.2 makes $HTTP_RAW_POST_DATA not set by default, |
19 // but we can do it ourself. |
19 // but we can do it ourself. |
20 if ( !isset( $HTTP_RAW_POST_DATA ) ) { |
20 if ( ! isset( $HTTP_RAW_POST_DATA ) ) { |
21 $HTTP_RAW_POST_DATA = file_get_contents( 'php://input' ); |
21 $HTTP_RAW_POST_DATA = file_get_contents( 'php://input' ); |
22 } |
22 } |
23 |
23 |
24 // fix for mozBlog and other cases where '<?xml' isn't on the very first line |
24 // fix for mozBlog and other cases where '<?xml' isn't on the very first line |
25 if ( isset($HTTP_RAW_POST_DATA) ) |
25 if ( isset( $HTTP_RAW_POST_DATA ) ) { |
26 $HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA); |
26 $HTTP_RAW_POST_DATA = trim( $HTTP_RAW_POST_DATA ); |
|
27 } |
27 |
28 |
28 /** Include the bootstrap for setting up WordPress environment */ |
29 /** Include the bootstrap for setting up WordPress environment */ |
29 include( dirname( __FILE__ ) . '/wp-load.php' ); |
30 include( dirname( __FILE__ ) . '/wp-load.php' ); |
30 |
31 |
31 if ( isset( $_GET['rsd'] ) ) { // http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html |
32 if ( isset( $_GET['rsd'] ) ) { // http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html |
32 header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true); |
33 header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ), true ); |
33 ?> |
34 echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>'; |
34 <?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?> |
35 ?> |
35 <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd"> |
36 <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd"> |
36 <service> |
37 <service> |
37 <engineName>WordPress</engineName> |
38 <engineName>WordPress</engineName> |
38 <engineLink>https://wordpress.org/</engineLink> |
39 <engineLink>https://wordpress.org/</engineLink> |
39 <homePageLink><?php bloginfo_rss('url') ?></homePageLink> |
40 <homePageLink><?php bloginfo_rss( 'url' ); ?></homePageLink> |
40 <apis> |
41 <apis> |
41 <api name="WordPress" blogID="1" preferred="true" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> |
42 <api name="WordPress" blogID="1" preferred="true" apiLink="<?php echo site_url( 'xmlrpc.php', 'rpc' ); ?>" /> |
42 <api name="Movable Type" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> |
43 <api name="Movable Type" blogID="1" preferred="false" apiLink="<?php echo site_url( 'xmlrpc.php', 'rpc' ); ?>" /> |
43 <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> |
44 <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php echo site_url( 'xmlrpc.php', 'rpc' ); ?>" /> |
44 <api name="Blogger" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" /> |
45 <api name="Blogger" blogID="1" preferred="false" apiLink="<?php echo site_url( 'xmlrpc.php', 'rpc' ); ?>" /> |
45 <?php |
46 <?php |
46 /** |
47 /** |
47 * Add additional APIs to the Really Simple Discovery (RSD) endpoint. |
48 * Add additional APIs to the Really Simple Discovery (RSD) endpoint. |
48 * |
49 * |
49 * @link http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html |
50 * @link http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html |
50 * |
51 * |
51 * @since 3.5.0 |
52 * @since 3.5.0 |
52 */ |
53 */ |
53 do_action( 'xmlrpc_rsd_apis' ); |
54 do_action( 'xmlrpc_rsd_apis' ); |
54 ?> |
55 ?> |
55 </apis> |
56 </apis> |
56 </service> |
57 </service> |
57 </rsd> |
58 </rsd> |
58 <?php |
59 <?php |
59 exit; |
60 exit; |
60 } |
61 } |
61 |
62 |
62 include_once(ABSPATH . 'wp-admin/includes/admin.php'); |
63 include_once( ABSPATH . 'wp-admin/includes/admin.php' ); |
63 include_once(ABSPATH . WPINC . '/class-IXR.php'); |
64 include_once( ABSPATH . WPINC . '/class-IXR.php' ); |
64 include_once(ABSPATH . WPINC . '/class-wp-xmlrpc-server.php'); |
65 include_once( ABSPATH . WPINC . '/class-wp-xmlrpc-server.php' ); |
65 |
66 |
66 /** |
67 /** |
67 * Posts submitted via the XML-RPC interface get that title |
68 * Posts submitted via the XML-RPC interface get that title |
|
69 * |
68 * @name post_default_title |
70 * @name post_default_title |
69 * @var string |
71 * @var string |
70 */ |
72 */ |
71 $post_default_title = ""; |
73 $post_default_title = ''; |
72 |
74 |
73 /** |
75 /** |
74 * Filters the class used for handling XML-RPC requests. |
76 * Filters the class used for handling XML-RPC requests. |
75 * |
77 * |
76 * @since 3.1.0 |
78 * @since 3.1.0 |
77 * |
79 * |
78 * @param string $class The name of the XML-RPC server class. |
80 * @param string $class The name of the XML-RPC server class. |
79 */ |
81 */ |
80 $wp_xmlrpc_server_class = apply_filters( 'wp_xmlrpc_server_class', 'wp_xmlrpc_server' ); |
82 $wp_xmlrpc_server_class = apply_filters( 'wp_xmlrpc_server_class', 'wp_xmlrpc_server' ); |
81 $wp_xmlrpc_server = new $wp_xmlrpc_server_class; |
83 $wp_xmlrpc_server = new $wp_xmlrpc_server_class; |
82 |
84 |
83 // Fire off the request |
85 // Fire off the request |
84 $wp_xmlrpc_server->serve_request(); |
86 $wp_xmlrpc_server->serve_request(); |
85 |
87 |
86 exit; |
88 exit; |