2016-11-16 20 views
1

私は、書き換えルールを変更してmovies.jsonからアクセスできるようにJSON APIを作成しています。 http://myurl.com/movies.jsonに移動すると、コンテンツが期待されるjsonファイルが表示されますが、AJAXで電話をかけた場合、「404 Not Found」が返されます。ここでwp_send_jsonで生成されたJSONファイルが返されます。404

書き換えURLの私のコードです:ここ

public function rewrite_url() { 
    global $wp_rewrite; 
    add_rewrite_tag('%movies%', '([^&]+)'); 
    add_rewrite_rule('movies.json', 'index.php?movies=all', 'top'); 
} 

とがあるI出力JSONファイルコード:

public function json_output() { 
    global $wp_query; 

    $movies_tag = $wp_query->get('movies'); 


    if (! $movies_tag) { 
     return; 
    } 

    $movies_array = array(); 

    $args = array(
     'post_type' => 'movies', 
     'posts_per_page' => 100, 
    ); 


    $movies_query = new WP_Query($args); 
    if ($movies_query->have_posts()) : while ($movies_query->have_posts()) : $movies_query->the_post(); 
     $post_id = get_the_ID(); 

     $movies_array['data'][] = array(
      'id' => $post_id, 
      'title' => get_the_title(), 
      'poster_url'=> get_post_meta($post_id, 'poster_url', true), 
      'rating' => get_post_meta($post_id, 'rating', true), 
      'year' => get_post_meta($post_id, 'year', true), 
      'short_description' => get_post_meta($post_id, 'short_description', true) 
     ); 

    endwhile; 

    wp_reset_postdata(); 

    endif; 
    header("Access-Control-Allow-Origin: *"); 
    header('Content-Type: application/json;'); 
    wp_send_json($movies_array); 

} 

任意のアイデアは、ですが、なぜでしょうか?ありがとう

答えて

0

ちょうど同じ問題に直面した。追加するとheader("HTTP/1.1 200 OK");が問題を解決するようです。

+0

これは機能しました。ありがとう – FerP

関連する問題