How to use metaWeblog.newPost (xmlrpc api) properly with PHP ?
-
I want to make new posts on my blog remotely with XMLRPC api and i m trying to use metaWeblog.newPost function, because it provides much features.
I successfully added new posts into wordpress but i failed to post it in a defined category(categories)i tried lots of various things but failed at end
now i m using code from this site
https://www.samuelfolkes.com/2009/08/posting-to-wordpress-with-php-and-xml-rpc/after stripping down the code for my needs here’s what i got and its working fine
remotepost.class.php
<?php class remotePost { private $client; private $wpURL = 'https://localhost/wp/xmlrpc.php '; private $ixrPath = '/wp-includes/class-IXR.php'; private $uname = 'zxc'; private $pass = 'zxc'; public $postID; function __construct($content) { if(!is_array($content)) throw new Exception('Invalid Argument'); include $this->ixrPath; $this->client = new IXR_Client($this->wpURL); $this->postID = $this->postContent($content); } private function postContent($content) { $content['description'] = $content['description']; if(!$this->client->query('metaWeblog.newPost','',$this->uname,$this->pass,$content,true)) throw new Exception($this->client->getErrorMessage()); return $this->client->getResponse(); } } ?>
post.php ( you can name it whatever you want )
<?php if(isset($_POST['submit'])) { include "remotepost.class.php"; $content['title'] = $_POST['title']; $content['categories'] = $_POST['category']; $content['description'] = $_POST['description']; try { $posted = new remotePost($content); $pid = $posted->postID; } catch(Exception $e) { echo $e->getMessage(); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.w3.org/1999/xhtml"> <head> <title>WordPress Poster</title> </head> <body> <?php if(isset($_POST['submit'])) echo "Posted! <a href=\"https://localhost/wp/?p=$pid\">View Post</a><br /><br />"; ?> <form enctype="multipart/form-data" method="post" action="#"> Title <input type="text" name="title" /> <br /> Category <input type="text" name="category" /> <br /> Description <input type="text" name="description" /> <br /> <input type="submit" value="Submit" name="submit" /> </form> </body> </html>
All this code is working but not posting in given category,
Is there anyone who can add all features to of metaWeblog.newPost in this example ?
you can find supported features in XMLRPC.php file in this function.
function mw_newPost($args) // We've got all the data -- post it: $postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'to_ping', 'post_type', 'post_name', 'post_password', 'post_parent', 'menu_order', 'tags_input', 'page_template');
Thanks for help
- The topic ‘How to use metaWeblog.newPost (xmlrpc api) properly with PHP ?’ is closed to new replies.