以下代码可以很好地将新帖子上传到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);
答案 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?
);