0
私はいくつかのリクエストでapiとして動作するようにプラグインを作成しました。その構造は次のとおりです。apiプラグインの中でwordpress関数を使用できません
add_action('rest_api_init', 'registerRoute');
function registerRoute() {
register_rest_route('test/v1/', 'mobile', array(
'methods' => 'POST',
'callback' => array(new testApi(), $_POST['action']),
));
}
class testApi
{
.......
public function getProduct()
{
$post_id = 123;
var_dump(wc_get_product($post_id));exit;
}
.......
}
上記のコードでは、wc_get_product returns boolean(false)
です。私はつまり、彼らは任意の値を返すかどうかを確認するために、他のワードプレスの機能を試してみました:
get_post($post_id);
ヌル
wp_get_current_user();
をと、これは以下を返す:
object(WP_User)#1772 (7) {
["data"]=>
object(stdClass)#1773 (0) {
}
["ID"]=>
int(0)
["caps"]=>
array(0) {
}
["cap_key"]=>
NULL
["roles"]=>
array(0) {
}
["allcaps"]=>
array(0) {
}
["filter"]=>
NULL
}
だから、私はいくつかのオンライン検索を行なったし、私のファイル上のコードのこの部分を追加しました:私はABSPATHをエコーすると
require_once(ABSPATH . 'wp-load.php');
、それは私のパス文字列を与えません。また、$wpdb
オブジェクトを使用することもできます。
上記のような製品IDで製品オブジェクトを取得できないのはなぜかと思います。製品は予約可能な製品であり、依然としてデータベースに存在します。
ここに間違いがありましたら教えてください。