2017-09-07 82 views
0

我試圖在wordpress中的cron作業中作出休息請求,但是如果我在wp_cron觸發的函數中有rest_do_request(),並且它沒有完成作業。強制執行cron作業(使用調試插件)時,它完全執行,但我在日誌Undefined index: path in "../wp-content/mu-plugins/wpengine-common/plugin.php at line 2030"中看到錯誤。網站目前位於WPEngine上,他們表示這些問題不在他們身邊,儘管PHP通知來自他們的插件。在cron作業中使用rest_do_request()?

功能由cron觸發:

//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文件的主題,並將請求上崗做了,但我的路線'/wp/v2/rings'使用它在CPT(環)

我不明白爲什麼rest_do_request()在cron作業中不起作用。

我可以登錄由cron事件提出的要求: {"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 Notice。禁用它們並沒有解決問題,rest_do_request()仍然沒有被cron事件觸發。 –

回答

0

我想這個問題,如果別人遇到它。 問題在於WP_Cron未被授權進行POST請求。 作爲快速解決方案,我在$request = new WP_REST_Request('POST', '/wp/v2/posts');之前在我的函數中添加了wp_set_current_user($admin_id);