質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

3309閲覧

WordPressについて【REST APIでサブディレクトリの投稿一覧を取得したい】

tentenmaru

総合スコア12

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2019/05/11 16:15

編集2019/05/12 16:39

前提・実現したいこと

WordPressでブログを書き始めて半年ほどの初心者です。
見当違いの質問かもしれませんが、よろしくお願いいたします。

※「REST API」の使い方についてご質問となります。

発生している問題・エラーメッセージ

http://example.com」というブログを書いているとします。
その場合、(例1)のように「/wp-json/wp/v2/posts」を付けることで、
json形式で投稿一覧を取得することができると思います。
(例1)
http://example.com/wp-json/wp/v2/posts

仮に(例2)のようなサブディレクトリにWordPressをインストールしている場合でも
上記と同様に投稿一覧を取得したいのですが、良い方法がありましたらご教授頂けないでしょうか?
(例2)
http://example.com/サブディレクトリ

該当のソースコード

試したこと

http://example.com/サブディレクトリ」の後に
「wp-json/wp/v2/posts」を追加するなど試してみましたが
上手く行かず解決方法を調べているのですが
行き詰まってしまいご質問させて頂きました。
よろしくお願いいたします!!

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

いろいろ情報が不明なので、一般的な内容で回答してみます。

まず最初に REST API が使用できないサブディレクトリにインストールした WordPress では、投稿を編集するエディタは何をお使いですか?

Gutenberg の場合は、投稿の作成や保存、編集はできていますか?


WordPress ( WordPress 5.1-ja + TwentyNineteen ) を新規インストール して、 http://example.jp/wp/ で トップページが表示されるのを確認した上で http://example.jp/wp/wp-json/wp/v2/posts にアクセスすると

[{"id":1,"date":"2019-05-14T10:57:05","date_gmt":"2019-05-14T01:57:05","guid":{"rendered":"http://example.jp/wp/?p=1"},"modified":"2019-05-14T10:57:05","modified_gmt":"2019-05-14T01:57:05","slug":"hello-world","status":"publish","type":"post","link":"http://example.jp/wp/hello-world/","title":{"rendered":"Hello world!"},"content":{"rendered":"\n<p>WordPress \u3078\u3088\u3046\u3053\u305d\u3002\u3053\u3061\u3089\u306f\u6700\u521d\u306e\u6295\u7a3f\u3067\u3059\u3002\u7de8\u96c6\u307e\u305f\u306f\u524a\u9664\u3057\u3001\u30b3\u30f3\u30c6\u30f3\u30c4\u4f5c\u6210\u3092\u59cb\u3081\u3066\u304f\u3060\u3055\u3044\u3002</p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress \u3078\u3088\u3046\u3053\u305d\u3002\u3053\u3061\u3089\u306f\u6700\u521d\u306e\u6295\u7a3f\u3067\u3059\u3002\u7de8\u96c6\u307e\u305f\u306f\u524a\u9664\u3057\u3001\u30b3\u30f3\u30c6\u30f3\u30c4\u4f5c\u6210\u3092\u59cb\u3081\u3066\u304f\u3060\u3055\u3044\u3002</p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http://example.jp/wp/wp-json/wp/v2/posts/1"}],"collection":[{"href":"http://example.jp/wp/wp-json/wp/v2/posts"}],"about":[{"href":"http://example.jp/wp/wp-json/wp/v2/types/post"}],"author":[{"embeddable":true,"href":"http://example.jp/wp/wp-json/wp/v2/users/1"}],"replies":[{"embeddable":true,"href":"http://example.jp/wp/wp-json/wp/v2/comments?post=1"}],"version-history":[{"count":0,"href":"http://example.jp/wp/wp-json/wp/v2/posts/1/revisions"}],"wp:attachment":[{"href":"http://example.jp/wp/wp-json/wp/v2/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http://example.jp/wp/wp-json/wp/v2/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"http://example.jp/wp/wp-json/wp/v2/tags?post=1"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}}]

のような JSON が取得可能です。(つまり、サブディレクトリでもデフォルトで WP REST API は、有効になています。)


デフォルトで有効なのがなぜ表示できなくなっているのかは不明ですが、考えられる原因として思いつく内容を書いてみますので、確認してみてください。

--

  • WP REST API を無効にしている。

  WordPress 4.5 の頃に REST API を無効化するプラグインや方法が紹介されていたと思います。
主な例では、下記のような内容がありますが、該当する内容を設定したことはありますか?

  ・セキュリティ系のプラグインがインストールされていて、REST API を無効化している
・API を無効化するプラグインがインストールしている ( 例: Disable REST API 等)
・.htaccess で、 wp-json へのアクセスを制御している。( IPアドレスの制限、BASIC認証の設定、404 にリダイレクト等 )
・ functions.php で、フックを使って、REST API を無効にするコードを記載している

--

  • お使いのテーマが不明ですが、お使いのテーマに WP REST API を無効にする設定項目がある。

  お使いのテーマは、何でしょうか?

--

  • パーマリンクの設定がおかしくなっていて、wp-json を認識しない。

  プラグインやテーマ等で、パーマリンク関係の設定を書き換えるものがありますが、パーマリンクの設定が不正な状態になっている場合に一部のページが表示できない場合があります。

  ダッシュボード(管理画面)にログインして、「設定」→「パーマリンク設定」で、設定内容は何も変更しなくてもよいので、「変更を保存」ボタンを押して「パーマリンクの設定」を更新してみてください。

--

  • レンタルサーバーを使っている場合、レンタルサーバーのセキュリティ機能で、特定の URL に対するアクセスが制限されている場合があります。 ( 主な例では、「wp-admin や XML-RPC へのアクセスを制限」「海外からのアクセスを制限」等)

  お使いのサーバのマニュアル等を確認。

投稿2019/05/14 02:37

CHERRY

総合スコア25175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問