R ile WordPress İçeriklerin Listenmesi

Trello, Asana, Google Keep, not defteri, kağıt parçaları derken her yerde değerlendirilmeyi, anlatılmayı, üzerine düşünmeyi gerektiren anekdotlar karşıma çıkıyor.

AA

Sıklıkla kullandığım not saklama alanım yıllardır WordPress draft alanı olmaya devam ediyor. Bunun nedeni, bir anlık boş vakit içerisinde en azından görece çok araştırma gerektirmeyen konuları hızlıca yayınlayabilme imkanı elbette. Ancak, zamanla artan konu başlıklarıyla birlikte bu durum da işin içinden çıkılmaz hale gelebiliyor.

Örneğin, bu sitede yayınlanmayı bekleyen bugün itibariyle 191 yazı olduğunu söyleyebilirim. Bu sayının 3 katı kadar da ecodiurnal.com'da başlık mevcut. Hal böyle olunca ve konu başlıklarını takip edemeyince önceliklendirme yapmak da oldukça büyük bir mesele haline geliyor. İşte, tam bu noktada pratik bir şekilde başlıkları listeleme ihtiyacı içerisine girip R programlama dili içerisinde kullanabileceğim RWordPress‘in özelliklerinden faydalanıyorum.

if (!require('knitr')) install.packages("knitr")
if (!require('devtools')) install.packages("devtools")
if (!require('RWordPress')) devtools::install_github(c("duncantl/XMLRPC", "duncantl/RWordPress"))

library("RWordPress")
library("tidyverse")
library("stringr")

options(WordPressLogin = c(kullaniciadi = "sifre"),
        WordPressURL = "http://domain.com/xmlrpc.php")

checkWPOptions <- getUsersBlogs()

getPosts <- as_tibble(getPosts())

getPosts %>%
  filter(post_status == "draft") %>%
  arrange(-desc(postid)) %>%
  select(postid, title) %>%
  as_tibble(.$title)

View(as_tibble(getPosts$title))

Yukarıdaki işlemi özetlemek gerekirse, öncelikle RWordPress paketini aktifleştiriyoruz. tidyverse ve stringr paketleri de vazgeçilmezlerimden. XML-RPC protokolü üzerinden, web sitemize girişte kullandığımız kullanıcı adı ve şifremizle getPosts ile yetkimiz dahilinde tüm postları çekiyoruz.

RPC (Remote Procedure Call)

Remote Procedure Call (Uzaktan Yordam Çağırma) arayüzü ile bir makineden diğer bir makinedeki program parçasına ait bir prosedür çağrılabilir. XML-RPC ile bu çağırma/konuşma işlemi XML'le belirlenmiş bir protokol sayesinde gerçekleştirilir. İşte biz de bu protokol sayesinde web sitemize bağlanıp listeleme işlemi yapabileceğiz. RWordPress sayesinde ek bir çok işlem de gerçekleştirmek mümkün1.

Diğer yandan, XML-RPC protokolünün WordPress 3.5 itibariyle standart olarak aktif olması nedeniyle ekstra herhangi bir ayar yapmamıza da gerek yok. Yukarıdaki işleme geri dönecek olursak, en son postları getPosts’a aktarmıştım. Bu aşamada, ihtiyacım olan tüm postlar olmadığı için filtreleme yapıyorum. Taslak (draft= yazıları alıp id değerlerine göre sıralıyor ve sadece başlıkları görüntülüyorum.

Evet, hepsi bu kadar. Sonuç olarak View ile sonuca ulaşıyorum. Yukarıdaki işlem default olarak 100 adet post görüntülemenizi sağlayacaktır. Paketlerin detayları ve fonksiyonlarla ilgili ek yazılar için twitter üzerinden beni takip edebilirsiniz.