2015-04-23 34 views
1

我稍微修改了一個wp-plugin,爲了使它自動工作。在WP插件上運行一個cron作業

地址爲http://www.example.com/wp-admin/admin.php?page=wp_posts&add=add

的問題是,我無法得到它的工作和我的cron是使用它的IM時給我一個錯誤。

wget -O /dev/null http://www.example.com/wp-admin/admin.php?page=wp_posts&add=add 

調用它,因此我得到

--2015-04-23 10:00:01-- http://www.example.com/wp-admin/admin.php?page=wp_posts 
Resolving www.example.com... 46.105.40.207 
Connecting to www.example.com|46.105.40.207|:80... connected. 
HTTP request sent, awaiting response... 302 Moved Temporarily 
Location: http://www.example.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.example.com%2Fwp-admin%2Fadmin.php%3Fpage%3Dwp_posts&reauth=1 [following] 
--2015-04-23 10:00:03-- http://www.example.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.example.com%2Fwp-admin%2Fadmin.php%3Fpage%3Dwp_posts&reauth=1 
Reusing existing connection to www.example.com:80. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [text/html] 
Saving to: 「/dev/null」 

0K ...              237M=0s 

2015-04-23 10:00:03 (237 MB/s) - 「/dev/null」 saved [3180] 

如此看來,因爲這是管理的限制,我沒有辦法來運行它。

有關我如何改變這種情況的任何想法?

+0

您需要更改插件設置使此URL公開,例如,http://www.example.com/your_cron_page?page=wp_posts&add=add,由於wp-admin,這意味着此操作僅適用於管理員,只有當前登錄的用戶 –

回答

1

您可以在的functions.php文件中使用這個片段中,你可以通過公共URL例如http://example.com/cron

function my_CronJob() { 
    global $wp; 
    // Check that we are getting "cron" slug from url. 
    if($wp->request == 'cron'){ 
     // Run you cron script here. 

     die(); 
    } 
} 

add_filter('template_redirect', 'my_CronJob'); 

運行它,或者,如果你想使用WordPress的實際標準,你可以檢查此article

希望它可以幫助你。

+0

謝謝。由於我在其中包含了一些API,我應該將它們包含在函數的外部還是內部? – Tayax

+0

你可以讓你在一個特定的函數 之後在my_CronJob中完成cron作業邏輯,如果你可以調用該函數,例如if($ wp-> request =='cron'){your_cron_job_logic_function();死(); } –

+0

對於函數部分的工作很好,但是,我不知道我應該怎樣用cron調用它。 我收到: http://www.example.com/automatemovie 解決www.example.com ... MY.IP.ADD.RESS 連接到www.example.com | MY.IP.ADD.RESS | :80 ...連接。 HTTP請求已發送,正在等待響應... 404未找到 2015-04-24 13:00:03錯誤404:未找到。 – Tayax