pythonでカスタムフィールドへ追加登録【WordPress】
pythonで投稿ページへの登録方法は以下の通り
payload = {"status": status,
"slug": slug,
"title": title,
"content": content,
#"date": datetime.now().isoformat(),
"categories": category_ids,
"tags": tag_ids}
記事を投稿して成功した場合はTrue、失敗した場合はFalseを返します。
#:param status: 記事の状態(公開:publish, 下書き:draft)
#:param slug: 記事識別子。URLの一部になる(ex. slug=aaa-bbb/ccc -> https://wordpress-example.com/aaa-bbb/ccc)
#:param title: 記事のタイトル
#:param content: 記事の本文
#:param category_ids: 記事に付与するカテゴリIDのリスト
#:param tag_ids: 記事に付与するタグIDのリスト
#:param media_id: 見出し画像のID
#:return: レスポンス
アイキャッチ画像を登録するカスタムフィールドの登録もしたい。
pythonでカスタムフィールドへ追加登録方法
まず、function.phpファイルに以下を追加する。
//REST API の初期化フック
add_action( 'rest_api_init', 'create_api_posts_meta_field' );
function create_api_posts_meta_field()
{
register_rest_field(
'post', //投稿タイプ
'meta_field', //これは任意のキー名
array(
'get_callback' => 'get_post_meta_for_api',
'update_callback' => 'update_post_meta_for_api',
'schema' => null,
)
);
}
//取得(GET)時のオブジェクトにpostのメタをすべて追加
function get_post_meta_for_api( $object ){
$post_id = $object['id'];
return get_post_meta( $post_id );
}
//投稿(POST)時のオブジェクトからメタを更新する
function update_post_meta_for_api($value, $object, $fieldName){
foreach($value as $key => $val){
$rtn = update_post_meta($object->ID, $key, $val);
if (!$rtn){
return false;
}
}
return $rtn;
}
pythonへ以下のプログラムを追加する
payload = {"status": status,
"slug": slug,
"title": title,
"content": content,
#"date": datetime.now().isoformat(),
"categories": category_ids,
"tags": tag_ids}
payload['meta_field'] = {"_knawatfibu_url":(追加したい値)}
【元の同じアイキャッチ画像】
【カスタムフィールドを更新できた後】※アイキャッチ画像が随時変更
なかなか難しかった。
困っている方もいると思うので、参考までに記述しておく。