目次
REST APIのエンドポイントをカスタマイズして、初回投稿日と更新日時を比較する
概要
テーマやプラグインにPHPコードを追加して、独自のRESTエンドポイントを作成し、新規投稿のみ返すようにする方法です。
add_action('rest_api_init', function () {
register_rest_route('custom/v1', '/new-posts/', [
'methods' => 'GET',
'callback' => 'get_new_posts_only',
]);
});
function get_new_posts_only($request) {
$args = [
'post_type' => 'post',
'posts_per_page' => 10,
'orderby' => 'date',
'order' => 'DESC',
];
$query = new WP_Query($args);
$posts = [];
foreach ($query->posts as $post) {
if ($post->post_date === $post->post_modified) {
$posts[] = [
'id' => $post->ID,
'title' => get_the_title($post),
'date' => $post->post_date,
];
}
}
return $posts;
}
エンドポイント例:
https://your-site.com/wp-json/custom/v1/new-posts/
使用目的
アプリでのPUSH通知などで、更新された記事は除外したい場合などに使用することができる。

