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

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

6
REST API V2からWPナビゲーションメニューを取得する
WP REST API v2プラグインを使用して、JSON応答からナビゲーションメニューを取得しようとしています。 REST API v2用のナビゲーションメニュープラグイン拡張機能はありませんが、V1専用です。 コーデックスのWordPress投稿タイプから、ナビゲーションメニューが投稿タイプとして扱われることを学びました。 Rest API Docから、これがタイプの投稿を取得する方法です: GET http://demo.wp-api.org/wp-json/wp/v2/types/<type> 私はそのようにしようとしました: URL : http://localhost/wptest/wp-json/wp/v2/types/nav_menu_item 403エラーを受け取りました。 {"code":"rest_cannot_read_type","message":"Cannot view type.","data":{"status":403}} サーバーは私の要求を理解しましたが、データの提供を拒否しました。 Q:どうすれば修正できますか?

3
カスタムルートでWP APIリクエストの本文にアクセスするにはどうすればよいですか?
WP API(v2ベータ4)でカスタムルートを作成して、サイトオプションを設定しました。AngularJSを使用してAPI呼び出しを行っていますが、何らかの理由で、リクエスト内で送信されたデータにアクセスできません。ここに私がこれまで持っているものがあります: gvl.service('gvlOptionService', ['$http', function($http) { this.updateOption = function(option, value) { return $http({ method : 'POST', url : wpAPIdata.gvlapi_base + 'options', data : { "option" : option, "value" : value }, headers : { 'Content-Type': 'application/x-www-form-urlencoded', 'X-WP-Nonce' : wpAPIdata.api_nonce } }) } }]); これでリクエストが正常に送信され、投稿されたデータは次のようになります。 {"option":"siteColor","value":"ff0000"} リクエストは、カスタムルートと指定したコールバックに正常に送信されます。これがクラス内のそのコールバック関数です: public function update_option( WP_REST_Request …
11 wp-api 

1
REST APIを使用したメディアのアップロード
JSON REST APIを使用してWordPressサイトにメディアをアップロードするときに問題が発生します。 次のコードを使用して写真をアップロードできますが、名前も含めて情報が割り当てられていません。実際、名前は自動的にURLとファイル名になります(拡張子なし)。 $username = "ZX"; $password = "ZX"; $host = 'http://ZX.com/wp-json/wp/v2/media'; $data = json_encode($data); $file = '/Users/xx.png'; $imagedata = file_get_contents($file); $process = curl_init($host); curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); curl_setopt($process, CURLOPT_BINARYTRANSFER, TRUE); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($process, CURLOPT_TIMEOUT, 50); curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($process, CURLOPT_POSTFIELDS, $data); curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type:image/png','Content-Disposition:attachment;filename='.$file)); …
9 php  uploads  media  wp-api  curl 

4
WP REST API v2で投稿数を取得し、すべてのカテゴリを取得する
投稿数を知りたい。使うと思う wp-json / wp / v2 / categories?page = 1 >>カウントするのが良い方法です。しかし、上記の解決策を使用することは、速度の点でお茶ではなく、1回の呼び出しですべてのカテゴリを取得する方法がわかりません(もし知っていれば、共有すると非常に役立ちます)。メインコールに投稿数を追加できるようにする方法/チュートリアル/ ...はありますか?このルートのように:wp-json / wp / v2 / posts ...

2
複数のメタキーによるWP REST API v2のクエリ
REST APIのv2を使用して、複数のメタキーでいくつかの投稿をクエリしたいと思います。v1では、URLを次のようにフォーマットでき、&filter[meta_value][month]=12&[meta_value][year]=2015(メタ値をAPIに公開した後)機能しました。 今v2では、このGitHubスレッドにリストされているメソッドを使用することによってのみこれを機能させることができます:https : //github.com/WP-API/WP-API/issues/1599#issuecomment-161166805 基本的に、次のrest_query_varsようなフィルターを使用してメタフィールドを追加しました。 add_filter( 'rest_query_vars', 'flux_allow_meta_query' ); function flux_allow_meta_query( $valid_vars ) { $valid_vars = array_merge( $valid_vars, array( 'meta_key', 'meta_value', 'meta_compare' ) ); return $valid_vars; } これで、のようなURLを使用して1つのメタキーでフィルタリングできますwp-json/wp/v2/posts?filter[meta_key]=test&filter[meta_value]=on。 ただし、複数のメタキーでフィルター処理する唯一の方法のように思えるカスタムフィルターを作成します。誰かが私を正しい方向に向けることができますか?

1
人気の投稿をWP REST JSON APIを介して別のPHP Webサイトに表示する
同じドメインの別のPHP Webサイトで人気のある投稿と最近の投稿を表示する必要があります。 例: www.example.com ->メインWebサイト(php、mysql) www.example.com/blog -> WordPressブログ ブログの人気のある最近の投稿をメインWebサイトに表示する必要があります。 ブログとメインWebサイトは2つの別々のデータベースを使用していることに注意してください。 そのためにWP REST JSON APIプラグインを使用することにしました。今、私は別の質問があります。 次のコードを使用して、先週の人気の投稿を取得します。私が実際に必要なのは、API呼び出しを介して同じデータを取得することです。 $args = array( 'date_query' => array( array( 'after' => '1 week ago' ) ), 'posts_per_page' => $recent_posts_count, 'ignore_sticky_posts' => 1, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ); $popularposts = new WP_Query( $args …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.