2010-04-13 5 views
0

Le code suivant fonctionne très bien pour télécharger un nouveau message sur un blog WordPress mais pour la vie de moi, je n'arrive pas à définir les catégories.Les catégories Perl WordPress :: XMLRPC ne sont pas définies

Les catégories existent. J'ai essayé toutes les minuscules, essayé le cas-correspondant, essayé la version slug. Rien ne fonctionne. Peu importe comment j'essaie de passer les catégories, le poste est affecté uniquement à la catégorie par défaut.

J'ai parcouru le Web pour trouver d'autres morceaux de code exemple et aucune mentionne la sémantique du code réel de la façon d'attribuer la poste à certaines catégories à l'aide du module WordPress::XMLRPC.

use WordPress::XMLRPC; 

my $o = WordPress::XMLRPC->new; 
$o->username('username'); 
$o->password('password'); 
$o->proxy('http://blogdomain.com/xmlrpc.php'); 
$o->server() || die "$!"; 

my $hashref = { 
    'title'    => 'Test New Post 999 555456782', 
    'categories'  => ['Categorie1', 'Categorie2'], 
    'description'  => '<p>Here is the content</p>', 
    'mt_keywords'  => 'tag1, tag2, tag3', 
    'mt_allow_comments' => 1, 
}; 

my $ID = $o->newPost($hashref, 1); 

Répondre

0

Je crois que c'est fixe, comme je l'avais aucun problème à faire ce qui suit (division d'une liste séparée par des virgules catégories $):

my @categories = split(',', $categories); 

my $id = $o->newPost(
{ 
     title   => 'title', 
     description => 'description', 
     categories => \@categories, 
     mt_keywords  => 'tag1, tag2, tag3', 
     mt_allow_comments => '1', 
    }, 
    0 # Publish? 
    ); 
1

eu le même problème, au bout de 2 heures, je trouve la solution , qui travaille pour moi:

my $id = $o->newPost(
    { 
     title    => 'title', 
     description  => 'description', 
     categories   => [@tab], 
     mt_keywords  => 'tag1, tag2, tag3', 
     mt_allow_comments => '1', 
    }, 
    1 # Publish 
); 

il est semble que la mise entre parenthèses @tab aide ou vous pouvez spécifier les catégories de cette façon ci-dessous comme il a été décrit:

my $id = $o->newPost(
    { 
     title    => 'title', 
     description  => 'description', 
     categories   => ['category1', 'category2'], 
     mt_keywords  => 'tag1, tag2, tag3', 
     mt_allow_comments => '1', 
    }, 
    1 # Publish 
); 

Vous devez créer la catégorie avant de poster:

$content_hashref->{name} = $elem; 
$o->newCategory($content_hashref, 1); # etc... 
Questions connexes