2017-09-07 9 views
0

私はワードプレスでのcronジョブで、残りの要求を作るしようとしているが、私はwp_cronによって発射されると、それは仕事を終えていない機能でrest_do_request()を持っている場合。強制cronジョブ(デバッグプラグイン付き)を実行すると、完全に実行されますが、ログUndefined index: path in "../wp-content/mu-plugins/wpengine-common/plugin.php at line 2030"にエラーが表示されます。ウェブサイトは現在WPEngineでホストされていますが、PHP Noticeがプラグインからのものであっても、問題は彼らの側からではありません。 cronによって解雇cronジョブでのrest_do_request()の使用?

機能:この機能をテストするために現在

//Sample rest_do_request() that creates a new post 
function cron_rings_sync_catalog_bd895153() { 

    $request = new WP_REST_Request('POST', '/wp/v2/posts'); 
    $request->set_param('title', 'Some Title'); 
    $request->set_param('content', 'Some Content for the new post'); 
    $response = rest_do_request($request); 
} 
//Hook to Custom Cron Job 
add_action('rings_sync_catalog', 'cron_rings_sync_catalog_bd895153', 10, 0); 

は、テーマのfunctions.phpファイルに追加され、要求がポストのために行われているが、私は、CPT(リング)にそれを使用するルート'/wp/v2/rings'

cronジョブで使用された場合rest_do_request()が動作していない理由を私は理解することはできません。他の誰かがそれに遭遇した場合、 {"data":{"code":"rest_cannot_create","message":"Sorry, you are not allowed to create posts as this user.","data":{"status":401}},"headers":[],"status":401}

+0

cronイベントのデバッグに使用するプラグインのため、PHP通知が表示されます。それらを無効にしても問題は解決されませんが、rest_do_request()はまだcronイベントで起動されません。 –

答えて

0

私はこの問題を考え出し:

私はcronのイベントによって行われた要求をログに記録することができました。 問題は、WP_CronはPOSTリクエストを行うことが許可されていないことです。 クイックフィックスとして、 $request = new WP_REST_Request('POST', '/wp/v2/posts');の直前に wp_set_current_user($admin_id);を追加しました。