在 WordPress 中自动化每周一次的后台功能

Automate a weekly background function in WordPress

我正在为一位在她的网站上列出名人的客户开发一个 WordPress 网站。每个名人个人资料都会显示 table 社交媒体统计数据,这些数据是通过使用相应用户句柄的相关 API 抓取的。

例如,通过 Twitter API.

检索 Twitter 关注者计数

一切正常,但页面加载时间很痛苦。

我现在开始认为服务器每周在后台进行一次 API 查询并相应地更新数据库会更有意义,这样我们就不会查询API 在每次页面加载时。

我将如何构建这样的东西?

我可以编写一个函数来循环遍历所有名人获取的各种数据,但我如何实现自动化并确保数据输入到数据库中。

我显然不是在寻找一个完整的答案,只是在寻找一些关于方法的指导,因为这不是我以前做过的事情,而且我无法在不了解相关内容的情况下搜索某些东西 terms/names。有点chicken/egg.

Schedule a cron event !

一个可持续的方法是编写一个插件,schedules/clear_schedules cron activated/deactivated。

这是您可以使用的插件。

您需要将其放入一个文件中(例如 custom_cron_event.php)并将其 FTP 放入您的 /plugins 文件夹中,或者将其放入一个文件中并压缩 (ZIP) 文件通过 /wp-admin 接口将其上传到您的网站。

您可以安装 Cron Manager 之类的插件来验证 cron 事件是否已安排。 “custom_cron_event”(或者你为你的函数选择的任何名称)应该被列为一个计划的 cron 如果你已经激活了插件并且它工作正常。

<?php
/*
Plugin Name: Custom Plugin
Plugin URI: 
Description: Adds function on cron
Author: 
Version: 1.0
*/

/*  
 * When this plugin is activated, schedule
 */ 
    function activate_custom_cron(){
        wp_schedule_event( time(), 'daily', 'do_custom_cron_event');
    }
    register_activation_hook(__FILE__, 'activate_custom_cron');

/*  
 * When this plugin is deactivated, clear_schedule cron
 */ 
    function deactivate_custom_cron(){  
        wp_clear_scheduled_hook('do_custom_cron_event');    
    }
    register_deactivation_hook(__FILE__, 'deactivate_custom_cron');


/*  
 * Function
 */ 
    function custom_cron_event() {

    /*
     * This is where your function goes
     */

    }   
    add_action( 'do_custom_cron_event', 'custom_cron_event' );

?>

I answered a similar question here.