function bwawwp_xmlrpc_getPosts() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); // returns all posts of post post_type $rpc->query('wp.getPosts', 0, $xmlrpc_user, $xmlrpc_pass); echo '<h1>posts</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; // returns all posts of page post_type (or any specific post type) $filter = array('post_type' => 'page'); $rpc->query('wp.getPosts', 0, $xmlrpc_user, $xmlrpc_pass, $filter); echo '<h1>pages</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; // returns 5 published page titles in abc order $filter = array('post_type' => 'page', 'status' => 'publish', 'number' => '5', 'orderby' => 'title', 'order' => 'ASC'); $fields = array('post_title'); $rpc->query('wp.getPosts', 0, $xmlrpc_user, $xmlrpc_pass, $filter, $fields); echo '<h1>5 published page titles</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_deletePost() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); // return last post to get a post ID $filter = array('number' => '1', 'orderby' => 'date', 'order' => 'DESC'); $fields = array('post_id'); $rpc->query('wp.getPosts', 0, $xmlrpc_user, $xmlrpc_pass, $filter, $fields); $response = $rpc->getResponse(); $post_id = $response[0]['post_id']; // delete post by $post_id $rpc->query('wp.deletePost', 0, $xmlrpc_user, $xmlrpc_pass, $post_id); echo '<h1>Deleted Post ID: ' . $post_id . '</h1>'; exit; }
function bwawwp_xmlrpc_editPost() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); // return last post to get a post ID $filter = array('number' => '1', 'orderby' => 'date', 'order' => 'DESC'); $fields = array('post_id'); $rpc->query('wp.getPosts', 0, $xmlrpc_user, $xmlrpc_pass, $filter, $fields); $response = $rpc->getResponse(); $post_id = $response[0]['post_id']; // create an array with new post data $content = array('post_title' => 'Updated Post with XML-RPC', 'post_status' => 'publish'); $rpc->query('wp.editPost', 0, $xmlrpc_user, $xmlrpc_pass, $post_id, $content); echo '<h1>Updated Post ID: ' . $post_id . '</h1>'; exit; }
function bwawwp_xmlrpc_getOptions() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $rpc->query('wp.getOptions', 0, $xmlrpc_user, $xmlrpc_pass); echo '<h1>All Options</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; $options = array('blog_url', 'template'); $rpc->query('wp.getOptions', 0, $xmlrpc_user, $xmlrpc_pass, $options); echo '<h1>Filter 2 Options</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_getUsers() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $rpc->query('wp.getUsers', 0, $xmlrpc_user, $xmlrpc_pass); echo '<h1>Users</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; $filter = array('role' => 'administrator'); $fields = array('username', 'email'); $rpc->query('wp.getUsers', 0, $xmlrpc_user, $xmlrpc_pass, $filter, $fields); echo '<h1>Filtered Users</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_getPost() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $method = 'wp.getPost'; // return last post to get a post ID $filter = array('number' => '1', 'orderby' => 'date', 'order' => 'DESC'); $fields = array('post_id'); $rpc->query('wp.getPosts', 0, $xmlrpc_user, $xmlrpc_pass, $filter, $fields); $response = $rpc->getResponse(); $post_id = $response[0]['post_id']; // return all data on last $post_id $rpc->query('wp.getPost', 0, $xmlrpc_user, $xmlrpc_pass, $post_id); echo '<h1>Post ID: ' . $post_id . '</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_newPost() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); // create an array with post data $content = array('post_title' => 'New Post with XML-RPC'); $rpc->query('wp.newPost', 0, $xmlrpc_user, $xmlrpc_pass, $content); $post_id = $rpc->getResponse(); echo '<h1>New Post ID: ' . $post_id . '</h1>'; exit; }
function bwawwp_xmlrpc_getTerm() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $rpc->query('wp.getTerm', 0, $xmlrpc_user, $xmlrpc_pass, 'category', 1); echo '<h1>Term ID 1</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_getTaxonomies() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $rpc->query('wp.getTaxonomies', 0, $xmlrpc_user, $xmlrpc_pass); echo '<h1>Taxonomies</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_getPostTypes() { $rpc = new IXR_CLIENT('http://messenlehner.com/xmlrpc.php'); $filter = array('public' => 1); $rpc->query('wp.getPostTypes', 0, $username, $password, $filter); $response = $rpc->getResponse(); echo '<h1>Post Types</h1>'; echo '<pre>'; print_r($response); echo '</pre>'; exit; }
function bwawwp_xmlrpc_getMediaLibrary() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $filter = array('number' => '20'); $rpc->query('wp.getMediaLibrary', 0, $xmlrpc_user, $xmlrpc_pass, $filter); echo '<h1>Media Library</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_getComments() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $filter = array('status' => 'approve', 'number' => '20'); $rpc->query('wp.getComments', 0, $xmlrpc_user, $xmlrpc_pass, $filter); echo '<h1>Approved Comments</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_setOptions() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); $options = array('blog_title' => 'Site Title via XML-RPC', 'blog_tagline' => 'Just another WordPress site via XML-RPC'); $rpc->query('wp.setOptions', 0, $xmlrpc_user, $xmlrpc_pass, $options); echo '<h1>Set Options</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_getUsersBlogs() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); // returns all blogs in a multisite network $rpc->query('wp.getUsersBlogs', $xmlrpc_user, $xmlrpc_pass); echo '<h1>Blogs</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function bwawwp_xmlrpc_uploadFile() { global $xmlrpc_url, $xmlrpc_user, $xmlrpc_pass; $rpc = new IXR_CLIENT($xmlrpc_url); // grab an image $args = array('post_type' => 'attachment', 'post_status' => 'any', 'posts_per_page' => 1, 'post_mime_type' => 'image/jpeg'); $posts = get_posts($args); $name = basename($posts[0]->post_title); $type = $posts[0]->post_mime_type; $bits = file_get_contents($posts[0]->guid); $data = array('name' => $name, 'type' => $type, 'bits' => new IXR_Base64($bits), 'overwrite' => true); $rpc->query('wp.uploadFile', 0, $xmlrpc_user, $xmlrpc_pass, $data); echo '<h1>Uploaded File</h1>'; echo '<pre>'; print_r($rpc->getResponse()); echo '</pre>'; exit; }
function wprss_save_meta_box_data($post_id) { // Check if our nonce is set. if (!isset($_POST['wprss_meta_box_nonce'])) { return; } // Verify that the nonce is valid. if (!wp_verify_nonce($_POST['wprss_meta_box_nonce'], 'wprss_save_meta_box_data')) { return; } // If this is an autosave, our form has not been submitted, so we don't want to do anything. if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } // Check the user's permissions. if (isset($_POST['post_type']) && 'page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) { return; } } else { if (!current_user_can('edit_post', $post_id)) { return; } } // OK, it's safe for us to save the data now. $options = get_option('wprss_options'); if (is_array($options) && count($options) > 0) { if (is_object($post_id)) { $post_id = $post_id->ID; } $post = get_post($post_id); $post_categories = wp_get_post_categories($post_id); $post_tags = wp_get_post_tags($post_id); $listcat = array(); $listtag = array(); if (count($post_categories) > 0) { foreach ($post_categories as $c) { $cat = get_category($c); $listcat[] = $cat->name; } } if (count($post_tags) > 0) { foreach ($post_tags as $t) { $listtag[] = $t->name; } } $path_to_www_folder = get_home_path(); include_once $path_to_www_folder . 'wp-includes/class-IXR.php'; $post_date_gmt = new IXR_Date(strtotime($post->post_date_gmt)); foreach ($options as $key => $val) { if ($options[$key]["wprss_host"] != "") { if ($_POST["wprss_check_" . $key] != "") { $h = $options[$key]["wprss_host"]; $u = $options[$key]["wprss_username"]; $p = $options[$key]["wprss_pwd"]; $update_post = 0; $meta_key = 'post_at_' . $h; $remote_post_id = get_post_meta($post_id, $meta_key, true); $client = new IXR_CLIENT($h . '/xmlrpc.php'); if ($remote_post_id != "") { if ($client->query('wp.getPost', '1', $u, $p, $remote_post_id)) { $response = $client->getResponse(); if (count($response) > 0) { $update_post = 1; } else { delete_post_meta($post_id, $meta_key, $remote_post_id); } } else { delete_post_meta($post_id, $meta_key, $remote_post_id); } } if ($update_post == 0) { $content = array(); $content['post_status'] = $post->post_status; $content['post_title'] = $post->post_title; $content['post_excerpt'] = substr($post->post_content_filtered, 0, 250); $content['post_date_gmt'] = $post_date_gmt; $content['post_content'] = $post->post_content_filtered; $content['terms'] = array('category' => $listcat); $content['terms_names'] = array('post_tag' => $listtag); if (!$client->query('wp.newPost', '', $u, $p, $content)) { error_log("Error creation new post: " . $client->getErrorMessage()); } else { $remote_post_id = $client->getResponse(); add_post_meta($post_id, $meta_key, $remote_post_id, true); } } else { $content = array(); $content['post_status'] = $post->post_status; $content['post_title'] = $post->post_title; $content['post_excerpt'] = substr($post->post_content_filtered, 0, 250); $content['post_date_gmt'] = $post_date_gmt; $content['post_content'] = $post->post_content_filtered; $content['terms'] = array('category' => $listcat); $content['terms_names'] = array('post_tag' => $listtag); if (!$client->query('wp.editPost', "1", $u, $p, $remote_post_id, $content, true)) { error_log("Error edit post: " . $client->getErrorMessage()); } } } } } } return; }