[WP] XMLRPC를 이용한 WordPress(워드프레스) 포스트 등록
워드프레스 포스트 등록을 자동화 하는 과정에 XMLRPC를 이용한 방법을 테스트 했다. XMLRPC 클라이언트는 https://github.com/letrunghieu/wordpress-xmlrpc-client 를 이용했다. XMLRPC를 이용해 이미지 파일 업로드 후 업로드한 이미지 파일을 포스트에 표시되도록 하는 것이 가능한지만을 먼저 테스트 했기 때문에 예외처리 등은 빠져있다.
참고 : https://codex.wordpress.org/XML-RPC_WordPress_API
<?php
require './lib/WordpressClient.php';
# Your WordPress website is at: http://wp-website.com
$endpoint = "https://exmaple.com/xmlrpc.php";
# Create client instance
$wpClient = new \HieuLe\WordpressXmlrpcClient\WordpressClient();
# Set the credentials for the next requests
$wpClient->setCredentials($endpoint, 'user id', 'user password');
$file = './files/81UM0TSMgLL._SL1500.jpg';
$name = basename($file);
$mime = mime_content_type($file);
$bits = file_get_contents($file);
$media = $wpClient->uploadFile($name, $mime, $bits);
//print_r($media);
if(is_array($media) && !empty($media)) {
if(isset($media['metadata']['sizes']['large'])) {
$imgSize = 'large';
$width = '640';
} else {
$imgSize = 'medium';
$width = $media['metadata']['sizes'][$imgSize]['width'];
}
$imgClass = 'alignnone';
$imgSrc = $media['metadata']['sizes'][$imgSize]['file'];
$imgSrc = str_replace($media['metadata']['sizes']['thumbnail']['file'], $media['metadata']['sizes'][$imgSize]['file'], $media['thumbnail']);
$mediaLink = '<a href="'.$media['link'].'"><img class="'.$imgClass.' size-'.$imgSize.' wp-image-'.$media['attachment_id'].'" src="'.$imgSrc.'" alt="" width="'.$width.'" /></a>';
$post = $wpClient->newPost('테스트 '.date('Y-m-d H:i:s'), $mediaLink.PHP_EOL.'테스트 내용');
}
print_r($post);
위 코드에서 $endpoint 는 테스트할 워드프레스 블로그 주소로 변경하고 user id, user password 는 테스트 블로그의 로그인 정보를 입력한다.