WordPressとNext.js を使用して、ブログサイトを作成しているものです。
そこでご質問したいのが、RESTAPIを使用してデータの受け渡しをしたいと思っているのですが、
一覧は取得できたのですが、詳細ページの取得ができないので、どなたかご教授お願いできますでしょうか?
一応下記記事を参考に自分で独自エンドポイントを作成してみました。
https://notes.sharesl.net/articles/751/
一覧ページは問題なく取得できています。問題は詳細ページの取得です。
こちらは取得できた↓
https://{ドメイン}/wp-json/custom/v0/works
こちらは取得できてない↓
https://{ドメイン}/wp-json/custom/v0/works/id
functionphp
1 2function add_custom_endpoint() 3{ 4 // 5 register_rest_route( 6 //ネームスペース 7 'custom/v0', 8 //ベースURL 9 '/skills', 10 //オプション 11 array( 12 'methods' => WP_REST_Server::READABLE, 13 'callback' => 'skills_data' 14 ) 15 ); 16 register_rest_route( 17 //ネームスペース 18 'custom/v0', 19 //ベースURL 20 '/works', 21 //オプション 22 array( 23 'methods' => WP_REST_Server::READABLE, 24 'permission_callback' => '__return_true', 25 'callback' => 'works_data' 26 ) 27 ); 28} 29add_action('rest_api_init', 'add_custom_endpoint'); 30 31//APIの権限をチェックする関数 32function rest_permission(){ 33 return current_user_can('publish_posts'); 34} 35 36function rest_response($file_name, $param = null) { 37 $api_file = locate_template("api/${file_name}.php"); 38 $res = !empty($api_file) ? include_once $api_file : [1]; 39 $response = new WP_REST_Response($res); 40 $response->set_status(200); 41 return $response; 42} 43 44function skills_data($param) 45{ 46 return rest_response('skills-data', $param); 47} 48 49function works_data($param) 50{ 51 return rest_response('works-data', $param); 52} 53
<?php $post_data = []; $post_args = [ 'post_type' => 'works', 'posts_per_page' => -1, 'post_status' => 'publish', 'orderby' => 'date', 'order' => 'DESC' ]; $post_query = new WP_Query( $post_args ); if ( $post_query->have_posts() ) : while ( $post_query->have_posts() ) : $post_query->the_post(); global $post; $post_data[] = [ //記事ID 'id' => $post->ID, //公開日 'time' => get_the_time('Y.m.d'), 'title' => get_the_title(), 'thumbnail' => get_the_post_thumbnail_url( get_the_ID(),"large"), 'startData' => post_custom('startData'), 'endData' => post_custom('endData'), 'language' => post_custom('language'), 'FlameWork' => post_custom('FlameWork'), 'Use' => post_custom('Use'), 'link' => post_custom('link'), 'Github' => post_custom('Github'), 'category' => get_the_term_list($post->ID,'works_cat'), 'category_slug' => $cat_slug, //タグ 'tags' => get_the_terms($post->ID, 'works_tag'), ]; endwhile; wp_reset_postdata(); endif; return $post_data; ?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。