WordPress: usare le API REST per implementare dei cronjob

WordPress: usare le API REST per implementare dei cronjob

In WordPress possiamo usare le API REST per implementare dei cronjob.

Dobbiamo registrare una nuova route delle REST API in cui viene eseguito il task. Questa route accetta come parametro un token di validazione che abbiamo salvato nelle opzioni del nostro tema o plugin. Se il parametro รจ formalmente corretto e corrisponde al token in uso, il task viene eseguito.


function my_api_do_task( $data ) {
    $output = array();
    if( $data['token']  === get_option( 'my_api_token' ) ) {
        //...
        $output['done'] = true;
    } else {
        $output['done'] = false;
    }
    return $output;
}

add_action( 'rest_api_init', function () {
	register_rest_route( 'mynamespace/v1', '/cron/(?P<token>\w+)', array(
		'methods' => 'GET',
		'callback' => 'my_api_do_task',
		'args' => array(
			'id' => array(
				'validate_callback' => function( $param, $request, $key ) {
					return ctype_alnum( $param );
				}
			),
		),
	) );
} );

A questo punto non resta che registrare un semplice cronjob sul server con ad esempio questo comando:


curl https://site.tld/wp-json/mynamespace/v1/cron/token1234

Torna su