2009-08-29 3 views
6

도움, XMLRPC를 통해 metaweblogAPI를 사용하는 다음 perl 스크립트를 사용하여 사용자 정의 필드가있는 내 wordpress 블로그에 새 게시물을 만들려고하지만 사용자 정의 필드에 문제가있는 것 같습니다. 두 번째 사용자 정의 필드 (너비) 만 게시됩니다. "높이"를 제대로 게시 할 수 없습니다. 다른 필드를 추가하면 "익명 해시에있는 요소의 홀수"오류가 발생합니다. 이것은 무언가 간단해야만합니다. 누군가 내 신택스를 친절하게 확인하겠습니까? 감사.Perl에서 "익명의 해시로 된"홀수 개의 요소가 표시되는 이유는 무엇입니까?

#!/usr/bin/perl -w 
use strict; 
use RPC::XML::Client; 
use Data::Dumper; 

my $cli=RPC::XML::Client->new('http://www.sitename.com/wp/xmlrpc.php'); 

my $appkey="perl"; # doesn't matter 
my $blogid=1; # doesn't matter (except blogfarm) 

my $username="Jim"; 
my $passwd='_____'; 

my $text=<<'END'; 

This is the post content... 

You can also include html tags... 

See you! 
END 

my $publish=0; # set to 1 to publish, 0 to put post in drafts 

my $resp=$cli->send_request('metaWeblog.newPost', 
$blogid, 
$username, 
$passwd, 
{ 
    'title'  => "this is doodoo", 
    'description' => $text, 
    'custom_fields' => { 
    { "key" => "height", "value" => 500 }, 
    { "key" => "width", "value" => 750 } 
    }, 
}, 
$publish); 

exit 0; 
+0

해시 참조 복사에 대한 답변보기 http://stackoverflow.com/a/7083603/2015531 – ophidion

답변

13

기술적으로 유효한 구문이지만 사용자가 생각하는 것을 수행하지는 않습니다. 당신이 원하는 확실하지 않다

'custom_fields' => { 
    'HASH(0x881a168)' => { "key" => "width", "value" => 750 } 
}, 

:

'custom_fields' => { 
    { "key" => "height", "value" => 500 }, 
    { "key" => "width", "value" => 750 } 
}, 

는 같은과 거의 동일합니다. 0x881a168 부분은 달라지며 실제로는 해시 참조가 저장된 주소입니다.

사용자 정의 필드의 올바른 구문은 무엇인지 모르겠습니다. 시도해 볼 수 있습니다

이것은 custom_fields를 해시 배열로 설정합니다. 그러나 그것이 옳지 않을 수도 있습니다. send_request이 무엇을 기대 하느냐에 달려 있습니다.

+0

CJM! 당신의 제안이 효과가있었습니다. 두 사용자 정의 필드는 모두 잘 게시되었습니다.) 감사합니다. – Jim

관련 문제