Home > Perl, Programmierung, WordPress > WordPress Blogposts per Perl-Script modifizieren

WordPress Blogposts per Perl-Script modifizieren

Vor ein paar Tagen hatte ich beschrieben, wie man schnell und einfach per XML-RPC und der MetaWeblog API mit einem Perl Script einen neue Artikel in ein WordPress-Blog einfügt. Wie bereits kurz erwähnt hatte ich dabei ein Problem: Mit der MetaWeblog API habe ich es nicht geschafft, gleich beim Anlegen des Artikel die Kategorie festzulegen (und bin über jeden Tipp dankbar). Deshalb habe ich mit einer anderen API experimentiert, die WordPress ebenfalls kennt: Die Movable Type API von Sixapart. Hier ist dies mit “mt.setPostCategories” problemlos möglich:

my $res2 = XMLRPC::Lite
->proxy($proxyurl)
->call(‘mt.setPostCategories’, $postid, $wpusername, $wppassword, [ {categoryId => $kategorie} ])
->result;

Die $postid ist ja bekannt, so dass der Code kombiniert mit dem Anlegen etwa so aussehen könnte:

#!/usr/bin/perl -w
use strict;
use XMLRPC::Lite;

my $wpusername = “mustermann”;
my $wppassword = “meinpasswort”;
my $wpblogid = “meinblog”;
my $blogurl = “http://maxmustermann.wordpress.com/xmlrpc.php”;

# Neuer Blogbeitrag
my $articeltext =”Hallo Blog, wie geht’s. Hier steht viel Text!”;
my $articeltitle =”Mein erster Blogbeitrag”;
my $articeldatum =”20100220T12:34:56″;
my $articelkeywords =”Hund, Katze, Maus”;

my $rpcall = XMLRPC::Lite
->proxy($blogurl)
->call(‘metaWeblog.newPost’, $wpblogid, $wpusername, $wppassword,
{ description => $articeltext, title => $articeltitle, dateCreated => $articeldatum, mt_keywords => $articelkeywords}, 1)
->result;

if (defined ($rpcall)) {
  print “Erfolgreich – Artikel-ID: $rpcall \n\n”;
} else {
  print “Fehler: $!”;
  die();
}

my $postid=$rpcall;
my $kategorie=47; # Kategorie-ID
my $rpcall2 = XMLRPC::Lite
->proxy($blogurl)
->call(‘mt.setPostCategories’, $postid, $wpusername, $wppassword, [ {categoryId => $kategorie} ])
->result;

if (defined ($rpcall2)) {
  print “Erfolgreich Kategorie gesetzt!\n\n”;
} else {
  print “Fehler: $!”;
  die();
}

print “\n\n”;

Aber wie gesagt nur ein Workaround – eigentlich müsste dies in einem Schwung gehen.

  1. Es gibt noch keine Kommentare.
  1. Keine Trackbacks bisher.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

Gravatar
WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Log Out / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Log Out / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Log Out / Ändern )

Verbinde mit %s

Follow

Get every new post delivered to your Inbox.