72

XAMPPでローカルに開発しながら、Wordpress RESTプラグインWP-APIを何ヶ月も使用しています。最近、サイトを EC2 インスタンスに移行しましたが、API のエンドポイントにアクセスしようとすると、次のメッセージで 404 が表示されることを除いて、すべて正常に動作しています。

要求された URL /wordpress/wp-json/ がこのサーバーで見つかりませんでした

Pretty パーマリンクはhttp://.../wordpress/sample-post/、ブラウザーで特定の投稿に移動するときに正常に機能する次の構造で有効になります。

ここに私のセットアップに関するいくつかの詳細があります:

  • ワードプレス 4.4.1
    • マルチサイトではない
  • WP REST API プラグイン 2.0-beta9
  • アパッチ 2.2.22
  • Ubuntu 12.04.5

私は SO と WP サポート フォーラムを数時間調べて、アイデアがなくなったので、どんな助けも大歓迎です。ありがとうございました!

4

16 に答える 16

160

更新された新しい方法

ローカルプロジェクトでも同様の問題に直面しました。プロジェクトのURLの後に使用index.phpしましたが、うまくいきました。

http://localhost/myproject/index.php/wp-json/wp/v2/posts

404 エラーが表示される場合は、最初にパーマリンクを更新します (「ページ ナビゲーションが機能しない」セクションを参照)。

mod_rewrite機能する場合は、ubuntu でを有効にする必要があるかもしれません:

a2enmod rewrite
sudo service apache2 restart

インストール

REST API は WordPress 4.7 に含まれています! プラグインは不要になりました。WordPress の最新バージョンをインストールするだけで準備完了です。

4.7 より前の場合:

  1. ここからプラグインをダウンロードしてください: http://v2.wp-api.org/

  2. インストールしてアクティブ化します。

使用法

すべての投稿を取得するには:

www.mysite.com/wp-json/wp/v2/posts

検索機能の場合、テスト投稿の検索は次のようになります。

/wp-json/wp/v2/posts?filter[s]=test
于 2016-01-12T12:24:56.187 に答える
44

最新の WordPress 4.7 以降でこの問題が発生しました。私の場合、REST API は、パーマリンク設定をインストールのデフォルト設定である「プレーン」以外に変更した後にのみ機能しました。

于 2017-09-20T15:48:49.110 に答える
21

Apache の設定に問題があることが判明しました。

まず、.htaccessワードプレスのルート ディレクトリにあるファイルを削除しました。

次に、に移動し/etc/apache2/sites-enabledて開きました000-default

すべてのAllowOverride変数は None に設定されていましたが、これを に置き換えましたAll

それはトリックをしました!

于 2016-01-19T22:34:27.643 に答える
0

たとえば、Web サイトがhttps://example.wordpress.com (ワードプレス上) の場合、以下のリンクを使用すると、API 設定/パーマリンクなどに関係なく、JSON 応答が得られます。

利用可能なすべてのエンドポイントを確認したい場合は、これを使用します - https://developer.wordpress.com/docs/api/console/

**$site**ドメインに置き換えることを忘れないでください

ここで最新のドキュメントを見つけてください - https://developer.wordpress.com/docs/api/

于 2021-06-09T07:57:11.230 に答える
0

私はローカルホストで同じ問題に直面していましたが、WordPress プロジェクトセットアップのルートフォルダーで利用可能な .htaccess ファイルにRewriteBaseパスを設定するだけでこの問題を解決しました。

**Example:** 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /[folder-name]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /[folder-name]/index.php [L]
</IfModule>
于 2020-09-07T18:52:24.730 に答える
0

このページの他の解決策を試してもうまくいかなかった場合は、 public_html フォルダー (または WordPress をインストールした場所) の上のルート フォルダーにある追加の .htaccess ファイルを確認することに成功しました。

以前のインストールに由来するか、誤ってそこに移動された可能性のある追加のファイルを見つけました。「実際の」.htaccess ファイルに矛盾する指示を与えていました。それを削除すると、問題が解決しました。

于 2021-03-14T07:48:41.327 に答える