Perl WordPress :: XMLRPC类别未设置

时间:2010-04-13 08:51:21

标签: perl wordpress xml-rpc

以下代码可以很好地将新帖子上传到WordPress博客,但对于我的生活,我似乎无法设置类别。

存在类别。我已经尝试了所有小写,尝试了案例匹配,尝试了slug版本。什么都行不通。无论我如何尝试传递类别,帖子都只被分配到默认类别。

我已经在网上搜索了其他的示例代码,但没有提到如何使用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);

2 个答案:

答案 0 :(得分:1)

遇到同样的问题,2小时后我找到了适用于我的解决方案:

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

似乎将@tab括在括号中会有所帮助,或者您可以按照以下方式指定类别:

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

您必须在发布前创建类别:

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

答案 1 :(得分:0)

我认为这是固定的,因为我在执行以下操作时没有问题(拆分以逗号分隔的列表$ categories):

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?
    );