WordPressを使用してJamstackでサイトを制作しているものです。
その際に独自エンドポイントを設定してるのですが、クエリパラメータでの操作ができなくて困っています。
ちなみにデフォルトのRESTAPIだとクエリーパラメータでちゃんと操作できます。
独自エンドポイントの場合はクエリーパラメータでの操作は難しいのでしょうか?
ちなみにデータ自体はちゃんと取れています。
↓下記のような感じでパラメータを使用して、記事の取得数などをいじりたいです
https://exapmle.com/wp-json/wp/v2/posts?page=[NUMBER]
クエリーパラメター参考記事
https://designsupply-web.com/media/knowledgeside/6307/
独自エンドポイントの設定↓
php
1<?php 2function get_work_fields($work) { 3 $work_custom = get_post_custom($work->ID); 4 // var_dump($work); 5 $work_fields = [ 6 'id' => $work->ID, 7 //公開日 8 'time' => date('Y.m.d', strtotime($works->post_date)), 9 'title' => $work->post_title, 10 ]; 11 12 return $work_fields; 13} 14 15function get_works( $data ) { 16 if( $data['id']) return get_work_by_id($data); 17 18 $default_args = [ 19 'post_type' => 'works', 20 'posts_per_page' => -1, 21 'post_status' => 'publish', 22 'orderby' => 'date', 23 'order' => 'DESC' 24 ]; 25 // $works = new WP_Query( $default_args ); 26 $works = get_posts($default_args); 27 // var_dump($works); 28 if ( empty( $works ) ) { 29 return null; 30 } 31 32 $return_posts = array_map('get_work_fields', $works); 33 34 return $return_posts; 35} 36 37function get_work_by_id( $data ) { 38 global $default_args; 39 $post = get_post( $data['id'], OBJECT, $default_args); 40 if ( empty( $post ) ) { 41 return null; 42 } 43 $return_posts = get_work_fields($post); 44 return $return_posts; 45} 46 47add_action( 'rest_api_init', function () { 48 register_rest_route( 'custom/v1', '/works', array( 49 'methods' => 'GET', 50 'callback' => 'get_works', 51 ) ); 52});
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/07 12:07
2021/09/07 12:09