WP钩子不被称为

问题描述:

我无法获得一个Wordpress钩子来触发。我定义的钩子在我的functions.php在我的主题:WP钩子不被称为

add_action('download_rss', function() { 
    error_log("Ran download_rss hook"); 
    file_put_contents('/nas/content/live/site/cron-task-runtime.txt', date('l jS \of F Y h:i:s A')); 
}); 

然后我尝试从脚本中使用调用它在我的服务器的根目录:然而

require(dirname(__FILE__) . '/wp-load.php'); 
do_action('download_rss'); 

当我去了网站上的错误日志我没有看到钩子已经运行。我在做什么错了,我该如何调试呢?

add_action()和do_action()的顺序很重要。你必须确保你在注册动作后调用do_action。

要进行保存,可以在主题functions.php,如调用内的另一个包装函数您do_action ..

add_action('download_rss', function() { 
    error_log("Ran download_rss hook"); 
    file_put_contents('/nas/content/live/site/cron-task-runtime.txt', date('l jS \of F Y h:i:s A')); 
}); 


add_action('wp_loaded', function(){ 
    do_action('download_rss'); 
}) 

,然后加载wp-load.php文件,你需要。加载时还要确保所有文件路径都有效。

这应该工作,或者,如果您提供了错误日志,我可以告诉更多。