タグ付けされた質問 「restful」

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 = …

1
Rewrite APIを使用してRESTful URLを構築する
RESTful APIの書き換えルールを生成しようとしています。考えられるすべての書き換えの組み合わせを書き出すよりも、この作業を行うためのより良い方法があるかどうかを見たいだけです。 わかりましたので、URLで考慮する4つのクエリ変数があります インジケータ 国 応答 調査 ベースURLはwww.example.com/some-page/になります。4つの変数の順序は一貫していますが、一部のクエリ変数はオプションです。 だから... /indicator/{indicator value}/country/{country value}/response/{response value}/survey/{survey value}/ または...(/ response /なし) /indicator/{indicator value}/country/{country value}/survey/{survey value}/ または... /indicator/{indicator value}/country/{country value}/ これを達成rewrite_rules_arrayするために、手動で作成された書き換えルールの配列をフィルタリングして追加するよりも良い方法はありますか?add_rewrite_endpoint()rewrite_endpointまたはadd_rewrite_tag()私にとって何か役に立つでしょうか?

4
外部の「ディレクトリサービス」とのSSO /認証の統合
クライアントのプロトタイプの作業を開始しようとしています-必要な機能の1つは、社内のユーザー認証/登録システムとの統合です。 このシステムは権限のあるユーザーデータベースとして機能し、新しいユーザーを作成し、有効なユーザーを認証するためのRESTfulインターフェイスを提供します。 WPで新しいユーザーを作成し、そのプロセスの一環として外部認証APIを呼び出して、そのユーザーを作成/検証する必要があります。 有効なユーザーであるがWPに知られていない人は、WPサイトに自分で登録する必要なく、ログインしてコメントできる必要があります。 Webサイト全体にログインしている人もWordPressに自動的にログインする必要があります。 私は次のことが進むべき道だと考えています。 (1)の場合-使用できる登録フックはありますか? (2)-認証フィルターをフックすると仮定しています-つまり、誰かがログインしようとすると、私はそれをトラップし、外部システムに呼び出しを行い、WPログインを処理するか、登録プロセスにリダイレクトします1)エルを取る。 (3)の場合-メインサイトによって設定されたログインCookieを読み取り、(2)に進みますか? ユーザーとusermetaテーブルにもレコードを挿入する必要があると思います。 だから、上記は理にかなっています-私は何かについて考えていませんか?誰もがこれを支援するための優れたリソースを手に入れました(@hakre-あなたはこれについていくつかの仕事をしたことがわかりました!!)。 更新 だから私はまだこれに少し頭を打ち続けている、本質的に私は認証フィルターにフックしようとしていて、それを使って: 「マスター」サイトのログインCookieが設定されているかどうかを確認し、設定されている場合、認証APIに対して再検証し、有効な場合wp_signon()、マスターサイトCookieに含まれる情報(電子メールおよびハッシュ化されたパスワード)を使用してWPログインを強制しますWPの資格情報として Cookieが設定されていない場合は、マスターサイトのログインページにリダイレクトし、ログイン/サインアップを取得してから手順1に戻ります。 認証されたマスターサイトユーザーが存在するときにWPユーザーがいない場合は、作成してから「透明な」サインオンを作成します(つまり、ユーザーにWPログインフォームが表示されない) 基本的には、主にコメントするだけのユーザーに対してWPログインフォームを完全に非表示にし、後で作成者と管理者が直接アクセスできるようにする方法を見つけたいと思います。 それはかなりゆっくりと進んでいます、ここに私がいくつかの助けを使うことができるものがあります: 認証フィルターは正しいものですか?それは私が期待するすべての状況で呼び出されるようではありません-例えば、メタウィジェットは認証フックの起動なしでログイン/ログアウトリンクを表示します オブジェクトwp_signon()を返すことができWP_Userます(成功を示す)が、ログイン状態には影響しません。つまり、更新後もメタウィジェットは「ログイン」と表示されます。 ありがたいことに受け取った助け:)

2
WP-Rest-API v2でメディアを追加する
Wp-rest-api v2およびOauth2認証を介してワードプレスブログにメディア画像をアップロードするためにあなたの助けが必要です。 REST APIドキュメントで画像データを送信する方法が見つかりませんでした(フィールド名、送信モード...?)。 require('OAuth2/Client.php'); require('OAuth2/GrantType/IGrantType.php'); require('OAuth2/GrantType/AuthorizationCode.php'); const CLIENT_ID = 'XXX'; const CLIENT_SECRET = 'XX'; const REDIRECT_URI = 'http://127.0.0.1/test_api_wp/test.php'; const AUTHORIZATION_ENDPOINT = 'http://wordpress.local/oauth/authorize'; const TOKEN_ENDPOINT = 'http://wordpress.local/oauth/token'; $client = new OAuth2\Client(CLIENT_ID, CLIENT_SECRET); if (!isset($_GET['code'])) { $auth_url = $client->getAuthenticationUrl(AUTHORIZATION_ENDPOINT, REDIRECT_URI); header('Location: ' . $auth_url); die('Redirect'); } else { $params = array('code' …
10 media  restful 

3
カスタムREST APIの構築
ユーザー入力を受け取り、カスタムデータベースを検索し、クエリの結果を表示するWordPress.orgサイトがあります。私はこれをwpdbクラスを使用して機能させています。現在、これをAndroidアプリで機能させるようにしています。 私が理解しているところによると、RESTfulサーバーの構築は、この種のことに対する現在の「ベストプラクティス」です。私はこれを行うのを助けることができるいくつかのプラグインを調べました、そして私は遭遇しました: json-rest-api-これは、WordPressのコア機能(つまり、投稿、ページ、ユーザーなど)のみを公開しているようで、デフォルト以外のテーブルでカスタムクエリを実行する方法を確認できません。 このブログ投稿は、wp mvcが2年間以上更新されていないことを除いて、私が望んでいることを正確に実行していると言っています。 Jetpackもありますが、私が見たところ、json-rest-apiはこれの更新版であり、コア機能のみを提供しているようです。 これらのプラグインをカスタムエンドポイントで機能させる方法はありますか?または、まだ見つけていない他のプラグインはありますか? プラグインを使用しない場合は、自分でロールする必要があると思います。私はゼロ(使用してのいずれかからこれを行うことができwpdb、msqliまたは何か)、またはのようなAPIの助けを借りてRestler。 自分でロールする場合、テーマにテンプレートを作成する必要があります。そこでRESTを実行し、そのテーマをダッシュ​​ボード内のページに割り当てますか?それとも、WordPressとは別に別のサーバーを実行する方が良いでしょうか? 私が見る限り、これらは私の唯一のオプションです。この種の推奨されるベストプラクティスを教えてください。他の誰もこれをしていないとは信じがたい。私が見落としたオプションはありますか?
10 plugins  mobile  json  restful 

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。 ただし、複数のメタキーでフィルター処理する唯一の方法のように思えるカスタムフィルターを作成します。誰かが私を正しい方向に向けることができますか?

4
カテゴリを「wp-admin / post-new.php」に追加する方法は?
カテゴリも設定する新しい投稿を作成するためのリンクが欲しい。 私が試してみましたwp-admin/post-new.php?post_category=12とwp-admin/post-new.php?cat=12、どちらも働きました。また、カテゴリのIDではなく名前を使用してみました。影響もありませんでした。 デフォルトのカテゴリで新しい投稿へのリンクを作成するにはどうすればよいですか?

2
WordPress AJAX APIでのバックボーンの使用
私はBackboneを使用して単純なTODOプラグインを構築しようとしており、AJAX APIで問題が発生しました。正しいAJAXコールバックを取得するには、次のように "action"パラメータを渡す必要があります。 admin-ajax.php?action = get_todos これは、バックボーンのGETメソッドで正常に機能します。ただし、DELETEバックボーンを使用すると、デフォルトで次のようなURLが使用されます。 admin-ajax.php?action = get_todos / 9 ここで、「9」は削除される仕事のIDです。このIDを追加すると、WordPress側のAJAX呼び出しが中断されます。各メソッドのURLを手動でオーバーライドできますが、AJAX APIをBackboneと連携させるよりエレガントな方法があるかどうか知りたいです。 私が実行した特定の問題を示すデモプラグインを作成しました。設定ページを読み込み、ネットワークインスペクタを見ながらXをクリックして、WordPressからの0値のAJAX結果を確認します。 https://github.com/hereswhatidid/wordpress-todo-backbone-demo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.