[WP] XMLRPC를 이용한 WordPress(워드프레스) 포스트 등록 #2
지난 포스트에 이어 워드프레스 포스트 등록 자동화 과정 중 포스트 등록 때 카테고리 지정, featured image 와 태그 등을 설정할 수 있는 내용을 아래와 같이 테스트 했다.
참고 : 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);
# Remove .(dot) in file name
$temp = explode('.', $name);
$ext = array_pop($temp);
$name = str_replace('.', '', implode('', $temp)) . '.' . $ext;
$media = $wpClient->uploadFile($name, $mime, $bits);
//print_r($media); exit;
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>';
$content = array(
'post_thumbnail' => $media['attachment_id'],
'terms_names' => array(
'category' => array('그누보드5'),
'post_tag' => array('그누보드55', '영카트5')
),
/*
'custom_fields' => array(
array('key' => '_yoast_wpseo_focuskw_text_input', 'value' => '테스트 포커스')
)
*/
);
$post_content = $mediaLink;
$post_content .= '
테스트내용1
테스트내용2';
$post_id = $wpClient->newPost('테스트 '.$media['attachment_id'], $post_content, $content);
$post = $wpClient->getPost($post_id);
print_r($post);
}