PHP ve XML-RPC Kullanarak WordPress’e Yazı Göndermek

WordPress’e yazı göndermek için türlü masaüstü uygulamaları görmüşsünüzdür, örneğin Windows Live Writer. Bu sistemlerin hepsi WordPress’in XML-RPC protokolünü kullanırlar. Yani bu sistemle uzaktan yazı ekleme işlemi yapabilirsiniz. Peki bu protokolü php ile nasıl kullanırız?

İşte bu fonksiyonla, işleminizi gayet kolayca halledebiliyorsunuz:

function wpPostXMLRPC($title,$body,$rpcurl,$username,$password,$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,  // yorumlara izin verilecekse 1 yapın
        'mt_allow_pings'=>0,  // geri izlemelere izin verilecekse 1 yapın
        'post_type'=>'post',
        'mt_keywords'=>$keywords,
        'categories'=>array($category)
    );
    $params = array(0,$username,$password,$content,true);
    $request = xmlrpc_encode_request('metaWeblog.newPost',$params);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_URL, $rpcurl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    $results = curl_exec($ch);
    curl_close($ch);
    return $results;
}

$title = Yazının başlığı
$body = Yazı metni
$rpcurl = Sitenizin xmlrpc adresi (yani: http://www.siteadi.com/xmlrpc.php)
$username = Siteye giriş kullanıcı adı (admin)
$password = Siteye giriş şifreniz
$category = Yazının ekleneceği kategori yada kategoriler
$keywords = Yazının etiketleri
$encoding = Yazının charset ayarı

Yukarıdaki fonksiyonu herhangi bir php scriptle kullanabilirsiniz. Tabi kullanmadan önce, sunucunuzda xmlrpc bileşenlerinin kurulu olduğundan emin olun. Eğer kurulu değilse, xmlrpc_encode_request fonksiyonu hata verecektir.

XMLRPC bileşenleri kurulu olduğu halde yazı eklenmiyorsa:

wp-admin > ayarlar > yazma sayfasından, XML-RPC protokolü ile yazı yayınlamayı aktif hale getirmeniz gerekmektedir.

İşte bu da WordPress’in güzelliklerinden biri :)

Facebook'ta Paylaş

Benzer Yazılar

  1. Arslan diyor ki:

    usta ben free bi host kullanıyom. wl writer kullanıyom dediğin gibi wp-admin > ayarlar > yazma sayfasından, XML-RPC protokolü ile yazı yayınlamayı aktif hale getirmeniz gerekmektedir. bunuda yaptım. herşey iyi güzel normal yazı gönderiyorum ama bide yazıyı mesela mp3 ekliyom dediğin hatayı alıyorum ama mp3 v.b dosya eklemedğimde sorun olmuyor. bu neden olabilir…. uMARIm anlatabilmişimdir. teşekkürler

  2. erkan diyor ki:

    merhaba semih bey;
    bu bileşeni xampp a nasıl kurarız??

    saygılarımla

Bir Cevap Yazın