[解決済み] ワードプレスプラグインのエンドポイントへのRESTルートを登録する場所
2022-02-16 09:41:05
質問
登録機能はどこに行かなければならないのか?(
register_rest_route()
)
- theme/child functions.phpになければならないのでしょうか?
- それとも、プラグインベースphpファイル内でもよいのでしょうか?(例: \wp-content-plugins-example.php)
これを明確にしたドキュメントはありますか?
での公式ドキュメントには記載がありません。 https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/
同様に、エンドポイント関数はどこに格納する必要があるのでしょうか。登録関数は名前を付けるだけで、パスは指定しません。
例えば、こんな風にできるかな。
-
登録関数呼び出し(
register_rest_route
) は、メインプラグインファイル (例: \wp-contentpluginsexample.php) に記述します。 - エンドポイント関数は他のプラグインファイル(例: \wp-contentpluginsexamplesub-path-stuffsexample-controller.php) にあります。
もしそうなら、どのように?
以下のリンクはこれを試みているようですが、これらの属性は指定されていません (例: \wp-contentpluginsexample.php)
解決するには?
register_rest_route は "rest_api_init" アクションフックの中にあり、ルート用のコールバックは同じファイルか外部ファイルで定義できます (そして、それをメインファイルの中で要求すれば、ルート/s にそれらを追加できます). 以下はその例です。
例えば、プラグイン "api-test" があり、それが次の場所に配置されているとします。\そして、メインのプラグインファイルとしてapi-test.phpを追加します(この例のために、機能的でないものにします)。api-test.phpの中には、次のようなものがあります。
/**
* @wordpress-plugin
* Plugin Name: WP Rest api testing..
*/
/**
* at_rest_testing_endpoint
* @return WP_REST_Response
*/
function at_rest_testing_endpoint()
{
return new WP_REST_Response('Howdy!!');
}
/**
* at_rest_init
*/
function at_rest_init()
{
// route url: domain.com/wp-json/$namespace/$route
$namespace = 'api-test/v1';
$route = 'testing';
register_rest_route($namespace, $route, array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'at_rest_testing_endpoint'
));
}
add_action('rest_api_init', 'at_rest_init');
これは、すべてが同じファイル内にある、本当にシンプルな例です。
関連
-
[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】変な電話番号を生成するフェイカー?
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】Xampp ローカルホスト/ダッシュボード
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。