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 nn“;
} 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!nn“;
} else {
print „Fehler: $!“;
die();
}

print „nn“;

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

Dieser Beitrag wurde unter Perl, Programmierung, WordPress abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.