タグ付けされた質問 「rest-api」

WPコンテンツおよびデータにアクセスするためのコアRESTful HTTP APIに関する質問。

4
Wordpress REST APIは、一般的なWordpress 4.7のインストールでインストールおよび有効化されていますか?
Wordpress 4.7をインストールしました。この発表で言及されていることの1つは、REST APIを備えているということです。 私の理解は: Wordpress 4.7のコアと既に統合されているため、Wordpress REST APIプラグインはもう必要ありません。 Wordpress REST APIはデフォルトで有効になっています ただし、Wordpress 4.7のバニラインストールでは、どのエンドポイントも機能していないようです(たとえばhttp://examples.com/wp-json/wp/v2/posts)。 新しいREST APIが実際にアクティブ化されているかどうかはどうすればわかりますか?REST APIをバニラのWordpress UIで有効または無効にできますか、またはそのためにサードパーティのプラグインをインストールする必要がありますか?
29 rest-api 

4
WordPress 4.7.1 REST APIはまだユーザーを公開しています
WordPressを4.7.1にアップグレードし、その後REST APIを使用してユーザーを列挙しようとしましたが、修正する必要がありますが、ユーザーを取得することができました。 https://mywebsite.com/wp-json/wp/v2/users 出力: [{"id":1,"name":"admin","url":"","description":"","link":"https:\/\/mywebsite\/author\/admin\/","slug":"admin","avatar_urls":{"24": ... 最新バージョンからの変更ログ: REST APIは、公開投稿タイプの投稿を作成したすべてのユーザーのユーザーデータを公開しました。WordPress 4.7.1では、これをREST API内に表示するよう指定した投稿タイプのみに制限しています。KrogsgardとChris Jeanによって報告されました。 pluginをインストールした後Disable REST API、すべてが正常に機能しているように見えますが、私はすべての小さなもののプラグインに使用するのは好きではありません。 プラグイン使用後の出力は次のとおりです。 {"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}} プラグインを使用せずにこの問題を修正するにはどうすればよいですか、またはこのスタイルをアップグレードした後でも存在するのはなぜですか? 編集30.9.2017 contact 7プラグインとの間に競合があり、エラーDisable REST APIが401 unauthorized発生することに気付きました。 contact 7フォームからメッセージを送信しようとすると、リクエストが行われます wp-json/contact-form-7/v1/contact-forms/258/feedback それを無効にすることは良い考えではありません。

1
Rest V2(WP4.7)では、特定のRESTFUL動詞をどのように制限しますか?
カスタム投稿タイプごとに特定のRESTUL動詞を制限することを目指しています。たとえば、語彙のカスタム投稿タイプが与えられた場合、私は言いたいと思います: 許可マトリックス +-------+---+----------+ |index | X | GET | |show | O | GET | |create | X | POST | |update | X | PATCH/PUT| |delete | X | DELETE | +-------+---+----------+ V2はそのレベルの制御を提供していないようです。私はソースを調べましたが、私が見ることができるものから、アクセス権の変更を利用するフック/フィルターはありません。 私の現在の解決策は次のとおりです。許可されたアクションに対してカスタム投稿タイプのマトリックスをロードできるクラスの妥協。これはrest_prepare_vocabularyフィルターで呼び出すことができ、権限が揃っていない場合は応答を破棄します。 問題 これが合理的な解決策だとは思わない。これは、アクセス許可が2つのスポット(まだ適用されているコアの1つ)とフィルターで解決されていることを意味します。 理想的には、構成レベル、つまりカスタム投稿タイプが定義される場所になります。 言い換えると、ポストクエリ "snip"を実行するよりもexclude_from_search、(publicly_queryable、などの行に沿って)ルールを渡すことを好みます。 現在のソリューション(機能するが望ましくない) Access.php class Access { function __construct($permissions) { $this->permissions = …

4
CURLコマンドを介してREST APIでOAuth認証を使用する方法は?
認証からWordPress Rest Apiを使用して、APIからより多くのデータを取得しようとしています。Oauthプラグイン、rest-apiプラグインをインストールし、WP-CLIからAPI資格情報を取得しました。 許可なくデータにアクセスする方法を見つけました。これは動作します: // set our end point $domain = "http://localhost/wp-api"; $endpoint = $domain."/wp-json/wp/v2/posts/"; $curl = curl_init($endpoint); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $endpoint, ]); $response = curl_exec($curl); $decoderesponse = json_decode($response, true); ?> <pre> <?php print_r($decoderesponse); ?> </pre> しかし、資格情報で認証する方法がわかりません。これが私の試みです。「キー」と「秘密」が正しいかどうかはわかりません。 // Oauth credentials from wp-cli $ID = "4"; $Key …

7
REST APIの目的は?
まず第一に、これは現時点ではプラグインであることを理解していますが、とにかくWordPressのほとんどの部分であると確信しています。したがって、これがトピック外としてフラグ付けされないことを願っています。 私は彼らの公式ドキュメント、他の多くの記事を読み、チュートリアルビデオを見ましたが、まだいくつかのポイントを得ていません。これは確かにWordPressの未来です。別のサイトがありますが、それは自分のサイトに対してのみ何をしますか このことを考慮: 私は現在コメントに取り組んでいます。ユーザーがコメントセクションにスクロールしたときにのみコメントセクションをロードしたい(-200pxオフセットで、遅延がないように)。 ユーザーがそのポイントまでスクロールするとajax呼び出しがトリガーされます Ajax呼び出しは、etcなどのデータを送信しますpost_id 実行WP_Comment_Query()サーバーに 送信JSONデータは、コメント関係、名前、コンテンツをクライアントにバックアップなど JavaScriptを使用document.createElement()、innerHTML などのコメントを作成して出力するには 今.. 代わりにREST APIを使用するのはなぜですか?私の用途は何ですか?ただ将来の保証? 取得したすべてのデータを出力するためにJavaScriptを使用する必要があります。RESTAPIを使用する理由と目的(サイトとモバイルアプリ開発の間のデータ転送を除く)についての良い記事が見つかりませんでした。
17 rest-api 


6
is_rest()のようなものが存在しますか
私はREST APIから少し始めています。完全に誤解しない限り、initアクションフックはREST APIリクエストのときにも実行されます。ここで、REST APIリクエストではないコードのみを実行します。 だから私は次のようなことis_rest()をするためのようなコマンドを探していました <?php if( ! is_rest() ) echo 'no-rest-request'; ?> しかし、私はこのようなものを見つけることができませんでした。そこにあるis_rest()うちはそこに?
16 rest-api 

1
REST APIを使用してスラッグ名で投稿を取得するにはどうすればよいですか?
私のページでは機能しますが、投稿では機能しません。私がexample.com/wp-json/wp/v2/pages?slug=page-nameそれに行けば、ページを正しく取得します。私がexample.com/wp-json/wp/v2/posts?slug=post-nameそれに行く場合、同じ方法で投稿を取得しません。誰かがスラッグ名で投稿を取得する方法を教えてもらえますか?投稿にもカテゴリがありますが、それが必要かどうか、またはそれをクエリに適切に追加する方法がわかりません。私が見つけたすべてのドキュメントは、サポートされなくなった[filter]関数を参照しています。
16 urls  rest-api 

2
Wordpress Rest APIカスタムエンドポイントオプションパラメータ
register_rest_route()URLでオプションのパラメーターを使用することは可能ですか? ルートが次のように登録されているとしましょう: register_rest_route( 'api', '/animals/(?P<id>\d+)', [ 'methods' => WP_REST_Server::READABLE, 'callback' => 'get_animals', 'args' => [ 'id' ], ] ); それはのようなURLにAPI呼び出しを実行できるようになりました/ WP-JSON / API /動物/ 15、だけでなく、のようなルートをキャッチするために、オプションとしてのparamを宣言するための方法がある/ WP-JSON / API /動物/で。 私も以下のようにルートを宣言しようとしましたが、成功しませんでした: /animals/(?P<id>\d+)? パラメータなしで別のルートを宣言したり、GETパラメータを利用したりできますが、これを行う方法はすでにregister_rest_route()? あなたの提案をありがとう。

2
WP Rest API:注目のメディアURLを含む最新の投稿の詳細を1つのリクエストに含めますか?
私はwp-rest apiを使用して投稿情報を取得しています。また、wp rest apiフィルター項目を使用してフィールドをフィルターし、結果を要約します。 呼び出すhttp://example.com/wp-json/wp/v2/posts?items=id,title,featured_mediaと、次のような結果が返されます。 [ { "id": 407, "title": { "rendered": "Title 1" }, "featured_media": 399 }, { "id": 403, "title": { "rendered": "Title 2" }, "featured_media": 401 } ] 問題は、このIDを使用して特集メディアのURLを生成するにはどうすればよいですか?デフォルトで呼び出すとhttp://example.com/wp-json/wp/v2/media/401、ソース画像のさまざまなサイズのURLに関するすべての詳細を含む新しいjsonが返されます。 { "id": 401, "date": "2016-06-03T17:29:09", "date_gmt": "2016-06-03T17:29:09", "guid": { "rendered": "http://example.com/wp-content/uploads/my-image-name.png" }, "modified": "2016-06-03T17:29:09", "modified_gmt": "2016-06-03T17:29:09", "slug": "my-image-name", …

4
WP REST API 2を使用して複数のカスタムフィールドをフィルタリングする
AND関係のある複数のacfカスタムフィールドに基づいて投稿をフィルタリングしたい。このようなもの: $args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'color', 'value' => 'blue', 'compare' => '=', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ), ); さらにフィルターがあるかもしれません。これらをREST API 2フィルターに変換するにはどうすればよいですか?

4
WordPress REST API v2エンドポイントをパブリックビューから隠す
私が使用を開始したいと思いますワードプレスのREST API v2は自分のサイトからのクエリ情報に。エンドポイントURLに直接アクセスすると、すべてのデータが公開されていることに気付きました。また、多くのチュートリアルがライブサイトではなくテストサーバーまたはローカルサーバーの使用に言及していることも確認しました。 私の質問は: これは本番サイトで使用することを意図していますか? /wp-json/wp/v2/users/サイトに登録されているすべてのユーザーを表示するなど、誰でもエンドポイントを表示できるようにすることにはセキュリティ上のリスクがあります か? 許可されたユーザーのみにエンドポイントへのアクセスを許可することは可能ですか? セキュリティに関するベストプラクティスに従っていることを確認したいので、ヒントは役立ちます。APIドキュメントは、認証に言及したが、私は直接アクセスされてからURLを阻止するかどうかはわかりません。他の人は、通常、このデータに外部アプリケーションがアクセスするように多くの情報を公開せずにどのように設定しますか?
14 http  wp-api  rest-api 

7
WP REST API:カテゴリー1およびカテゴリー2でフィルター
REST APIをいじってみましたが、これで困っています。cat1とcat2の両方で投稿をフィルタリングするにはどうすればよいですか? 今のところ、?categories[]=45&categories[]=50カテゴリID 45または50 で返されます-45および50で投稿を取得するにはどうすればよいですか? 前もって感謝します。

1
ワードプレスでサイレックスまたはスリムを実行する
WordPressでテーマを実行しています。このテーマでは、いくつかの応答を期待している場所でAJAX呼び出しを行っています。(http://example.com/capis/v0/packages/) 上記のhttp呼び出しに対応するために、httpサーバーとしてsilexを使用しています。 index.php <?php require_once __DIR__ . '/vendor/autoload.php'; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Silex\Application; $app = new Silex\Application(); $app->POST('/capis/v0/packages/', function(Application $app, Request $request) { # logic return new Response('HELLO'); }); $app->run(); 私はphpを使用してajax呼び出しにデータを提供している8080ポートでサーバーを実行しています。 php -S localhost:8080 -t web web/index.php 次に、WordPressのみを使用してこれらのAjax呼び出しを処理したいと思います。特定のphpサーバーを実行したくない。
10 plugins  rest-api 

3
REST APIから取得したナンスは無効であり、wp_localize_scriptで生成されたナンスとは異なります
Googleから届いたものの場合:何をしているのか本当に理解していない限り、REST APIからナンスを取得すべきではありません。REST APIを使用したCookieベースの認証は、プラグインとテーマのみを対象としています。シングルページアプリケーションの場合は、おそらくOAuthを使用する必要があります。 この質問が存在するのは、単一ページのアプリを構築するときに実際に認証する方法がドキュメントで明確になっていない、または明確ではなかったため、JWTは実際にはウェブアプリに適しておらず、OAuthはCookieベースの認証よりも実装が難しいためです。 このハンドブックには、Backbone JavaScriptクライアントがナンスを処理する方法の例があり、この例に従うと、/ wp / v2 / postsなどの組み込みエンドポイントが受け入れるナンスを取得します。 \wp_localize_script("client-js", "theme", [ 'nonce' => wp_create_nonce('wp_rest'), 'user' => get_current_user_id(), ]); ただし、Backboneの使用は問題外であり、テーマも問題なので、次のプラグインを作成しました。 <?php /* Plugin Name: Nonce Endpoint */ add_action('rest_api_init', function () { $user = get_current_user_id(); register_rest_route('nonce/v1', 'get', [ 'methods' => 'GET', 'callback' => function () use ($user) { return …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.