Функция для закачивания картинок в Wordpress через XML-RPC
Размещено 2010-06-15
в разделе Программирование | Метки:
Wordpress, Zend Framework, XML RPC
Данная функция использует XML RPC для того чтобы закачивать картинки в Wordpress блог, при этом они после закачки отображаются в разделе "Медиа", так же добавил функцию которая создает wpClient который применяется в функции которая закачивает картинку
<?php
public function setWpBlogId()
{
$this->wpClient = new Zend_XmlRpc_Client(self::WORDPRESS_URL . 'xmlrpc.php');
$this->wpClient->getHttpClient()->setConfig(array('timeout' => 300));
try {
$result = $this->wpClient->call('wp.getUsersBlogs', array('username' => self::WORDPRESS_USER,
'password' => self::WORDPRESS_PASSWORD));
if (count($result))
{
$this->wpBlogId = $result[0]['blogid'];
}
} catch (Zend_XmlRpc_Client_FaultException $e) {
print "\n" . $e->getMessage() . "\n\n";
}
}
public function uploadFileWordpress($shortFilename, $fullFilename)
{
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$fileInfo = finfo_file($finfo, $fullFilename);
$imageHandle = fopen($fullFilename, 'r');
$imageBits = fread($imageHandle, filesize($fullFilename));
fclose($imageHandle);
$imageData = array('name' => $shortFilename, 'type' => $fileInfo,
'bits' => new Zend_XmlRpc_Value_Base64($imageBits), 'overwrite' => true);
$postRequest = array('blog_id' => $this->wpBlogId,
'username' => self::WORDPRESS_USER,
'password' => self::WORDPRESS_PASSWORD,
'data' => $imageData,
);
try
{
$result = $this->wpClient->call('wp.uploadFile', $postRequest);
}
catch (Zend_XmlRpc_Client_FaultException $e)
{
print "\n" . $e->getCode();
print "\n" . $e->getMessage();
}
return $result;
}
?>