Merhaba,
XML-RPC kullanmaya çalışıyorum ama şöyle bir sorun var.
// $veri_cikti[2], $haber[1] ve $haber[3] regex ile diğer siteden çektiğim veriler
$title = $veri_cikti[2];
$body = strip_tags($haber[1] . " " . $haber[3]);
require('../../wp-includes/class-IXR.php');
$client = new IXR_Client('http://localhost/_wordpress5_v3/xmlrpc.php');
$USER = 'admin';
$PASS = 'parola';
$content = array(
'title'=>$title,
'description'=>$body,
'mt_allow_comments'=>0, // 1 to allow comments
'mt_allow_pings'=>0, // 1 to allow trackbacks
'post_type'=>'post',
'mt_keywords'=>'test','test 2',
'categories'=>array($category)
);
if (!$client->query('metaWeblog.newPost','', $USER,$PASS, $content, true))
{
die( 'Error while creating a new post' . $client->getErrorCode() ." : ". $client->getErrorMessage());
}
$ID = $client->getResponse();
if($ID)
{
echo 'Post published with ID:#'.$ID;
}Üstteki kodu çalıştırdığım zaman, diğer siteden çektiğim verinin sadece başlığı ekleniyor. Yazı içeriği eklenmiyor. Mesela $body = $haber[1] yerine $body = "Yazı içeriği" gibi sabit bir değer girersem sorunsuz olarak içerik ekleniyor. Ama değişkene atadığım zaman olmuyor. $haber[1] boş değil bu arada, sayfanın herhangi bir yerinde yazdırınca sorun olmuyor...
$baslik = strip_tags($veri_cikti[2]);
$icerik = strip_tags($haber[1] . " " . $haber[3]);
class XMLRPClientWordPress
{
var $XMLRPCURL = "http://localhost/_wordpress5_v3/xmlrpc.php";
var $UserName = "admin";
var $PassWord = "parola";
// constructor
public function __construct($xmlrpcurl, $username, $password)
{
$this->XMLRPCURL = $xmlrpcurl;
$this->UserName = $username;
$this->PassWord = $password;
}
function send_request($requestname, $params)
{
$request = xmlrpc_encode_request($requestname, $params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_URL, $this->XMLRPCURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
$results = curl_exec($ch);
curl_close($ch);
return $results;
}
function create_post($title,$body,$category,$keywords='',$encoding='UTF-8')
{
$title = htmlentities($title,ENT_NOQUOTES,$encoding);
$keywords = htmlentities($keywords,ENT_NOQUOTES,$encoding);
$content = array(
'title'=>$title,
'description'=>$body,
'mt_allow_comments'=>0, // 1 to allow comments
'mt_allow_pings'=>0, // 1 to allow trackbacks
'post_type'=>'post',
'mt_keywords'=>$keywords,
'categories'=>array($category)
);
$params = array(0,$this->UserName,$this->PassWord,$content,true);
return $this->send_request('metaWeblog.newPost',$params);
}
}
$objXMLRPClientWordPress = new XMLRPClientWordPress("http://localhost/_wordpress5_v3/xmlrpc.php" , "admin" , "parola");
echo $objXMLRPClientWordPress->create_post($baslik,$icerik,'');Bu kodu çalıştırdığım zaman ise hem başlık hem yazı içeriği ekleniyor AMA Türkçe karakterler bozuk oluyor. Karakterleri bir türlü düzeltemedim.
İki koddan birisini kullanmam lazım ama işin içinden çıkamadım??