web-dev-qa-db-ja.com

WP 無効なユーザーIDを返すAPI V2

私のワードプレスブログからの投稿のリストを著者名、タイトル、日付と説明と共に他のサイトに表示したいです。したがって、WP REST API V2を使用することにしました。 WP REST APIドキュメントに従って、URLの例http://example.com/wp-json/wp/v2/posts?_embedを使用してJSON形式のデータを取得しました。著者名以外のすべての情報を入手しています。これは部分的なJSONです

 .........
 ........
 "_embedded": {
      "author": [
        {
          "code": "rest_user_invalid_id",
          "message": "Invalid user ID.",
          "data": {
            "status": 404
          }
        }
      ],
     ........
     ........

次のリンクhttp://example.com/wp-json/wp/v2/users/1にアクセスしようとした場合も同じエラーが発生します。ユーザーが存在してもこのエラーが発生する理由はわかりません。それは認証を扱いますか?

注: <実際のユーザー名がURLと投稿に表示されないように、WPデータベースのフィールドを以前に変更しました。しかし、これはJSON出力には影響しないと思います。ユーザー名の別名が既に存在し、私のブログに表示されているからです。また、私のブログの同じエントリが、著者名も表示されているwordpressプラグインによって別のwordpressブログに表示されます。

私が立ち往生していて解決策を見つけることができない私を助けてください。

2
geeksal

Wordfenceはユーザーエンドポイントを一般からブロックします。設定には、WP Rest APIに表示させるために選択解除できるチェックボックスがあります。

3
erwstout

私はこれがopのために解決されることを知っていますが、Googleからやってくる他のユーザーにとってはこれが私がしなければならなかったことです:

  1. WordFenceの「すべてのオプション」ページに移動します
  2. フィルターで「rest」を検索
  3. 「 '/?author = N'スキャン、oEmbed API、およびWordPress REST AP​​Iによるユーザー名の検出を防止する」オプションをオフにします。
  4. LiteSpeed Cacheに移動し、Purge Allを選択します

セキュリティとキャッシュに異なるプラグインを使用している可能性がありますが、一般的な考え方は残ります。

  1. セキュリティプラグインがアクセスをブロックしていないことを確認してください
  2. キャッシュをクリアする
0
rtpHarry