Recientemente, uno de nuestros lectores preguntó si era posible ver y controlar el sistema de cron jobs de WordPress desde el panel de control. Según nuestra experiencia, esta es una pregunta que se hacen muchos usuarios de WordPress, especialmente a medida que se familiarizan con el funcionamiento de WordPress entre bastidores.
Si no está familiarizado, Cron es una tecnología para ejecutar tareas programadas en un servidor web. WordPress viene con su propio cron integrado que le permite realizar tareas programadas como buscar actualizaciones, publicar entradas programadas, etc.
En este artículo, le mostraremos cómo ver y controlar las tareas cron de WordPress.
¿Qué es WordPress Cron? ¿Cómo funciona?
Cron es un término técnico utilizado para comandos que se ejecutan a horas programadas o a intervalos regulares. La mayoría de los servidores web lo utilizan para mantener el servidor y ejecutar tareas programadas.
WordPress viene con su propio sistema cron que le permite realizar tareas programadas. Por ejemplo, comprobar si hay actualizaciones, borrar comentarios antiguos de la papelera, publicar entradas programadas, etc.
Los plugins de WordPress también pueden utilizarlo para realizar tareas especificadas por usted. Por ejemplo, su plugin de copia de seguridad de WordPress puede utilizar WordPress cron para crear automáticamente copias de seguridad en un horario determinado.
Sin embargo, el uso irresponsable de WordPress cron por plugins puede ralentizar su sitio web. Especialmente, si usted está en alojamiento compartido.
Si un plugin realiza con frecuencia tareas que consumen muchos recursos, es necesario identificar el problema y corregirlo.
Veamos cómo ver y controlar el sistema cron de WordPress sin escribir ningún código.
Ver y controlar el sistema Cron de WordPress
Lo primero que debe hacer es instalar y activar el plugin WP Crontrol. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
Una vez activado, debe visitar la página Herramientas ” Eventos Cron para controlar los ajustes de cron.
Verá una lista de todos los eventos cron programados para ejecutarse en su sitio usando el sistema cron de WordPress.
En la primera columna, verá el nombre del gancho que ejecuta el cron.
Los nombres de los ganchos suelen dar una idea de lo que hacen.
La mayoría de los ganchos por defecto de WordPress comienzan con un prefijo wp_, como wp_update_plugins, wp_update_themes, etc.
Sus plugins de WordPress pueden o no usar sus propios prefijos para sus ganchos. Por ejemplo, All in One SEO utiliza el prefijo aioseo_
.
También podrá ver cuándo se ejecutará un cron a continuación y el intervalo de tiempo entre la siguiente ejecución.
La última columna de la lista le permite editar, borrar o ejecutar un evento cron.
Importante: Tenga mucho cuidado acerca de lo que hace con los eventos cron y nunca borre un evento cron por defecto de WordPress.
Supongamos que un plugin de WordPress crea un evento cron que consume muchos recursos.
En primer lugar, debes comprobar los ajustes del plugin para ver si hay una opción para controlarlo desde allí. Si no la hay, entonces puedes hacer clic en el enlace ‘Editar’ enlazado al evento cron para cambiarlo.
Al hacer clic en el botón Editar se abrirá la pestaña “Modificar Evento Cron” más abajo.
Aquí puede cambiar la frecuencia con la que desea que se ejecute el evento.
Una vez que haya terminado, haga clic en el botón “Modificar Cron Event” para guardar su configuración.
Añadir sus propios eventos Cron en WordPress
El plugin WP Crontrol hace que sea fácil añadir sus propios cron jobs a WordPress. Simplemente visita la página Herramientas ” Eventos Cron y desplázate hasta la pestaña ‘Añadir evento Cron’.
En primer lugar, debe proporcionar un nombre de gancho para su evento cron. Los nombres de gancho no pueden tener espacios ni caracteres especiales.
Si la función que quieres ejecutar requiere argumentos, entonces puedes proporcionar esos argumentos.
A continuación, debe indicar a WordPress cuándo debe ejecutar el cron la próxima vez. Puede indicar “ahora”, que activará el cron inmediatamente, “mañana”, “+2 días” o “25-02-2020 12:34:00”.
Por último, debe seleccionar un horario. Puede seleccionar cada hora, dos veces al día, todos los días o una vez a la semana. También puede hacer que no se repita el evento.
Cuando hayas terminado, haz clic en el botón “Añadir evento Cron” para guardar los cambios.
Observará que su evento cron aparecerá ahora en la lista de eventos.
Sin embargo, actualmente no hace nada porque no le ha dicho a WordPress qué hacer cuando se activa este evento.
Tendrás que añadir tu gancho y una función que se ejecute cuando se active el gancho cron.
add_action( 'wpb_custom_cron', 'wpb_custom_cron_func' );
function wpb_custom_cron_func() {
wp_mail( 'you@example.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
No olvide utilizar su propia dirección de correo electrónico.
Esta función simplemente te envía un correo electrónico de prueba cuando se ejecuta el cron. Ahora puede desplazarse por la página y hacer clic en el enlace “Ejecutar ahora” situado junto al evento cron para probarlo.
Nota: El uso de cron requiere conocimientos de programación y desarrollo de WordPress de nivel intermedio. Si no dispone de estos conocimientos, le recomendamos que contrate a un desarrollador de WordPress.
Esperamos que este artículo te haya ayudado a aprender cómo ver y controlar las tareas cron de WordPress. Puede que también quieras ver nuestra guía sobre cómo instalar en masa tus plugins de WordPress favoritos o nuestra selección de los mejores plugins de seguridad para WordPress.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Paul Barrett
We run cron at server level because wp-cron overloads teh server. There’s is nothing on our site that is so time-critical the jobs need to running frequently. If we set the frequency to say daily, would WordPress have a problem?
WPBeginner Support
It would heavily depend on what is being done on the site and when. We do not have a specific recommendation for what can be delayed to that extent.
Administrador
Matt K
When I go to change the the recurrence on the Hooks, they just get changed back. Something isn’t right. Do I need to disable WP crons in wp-config.php first?
WPBeginner Support
It would depend on the specific chron job, if you reach out to the plugin’s support they should be able to assist
Administrador
Heinz
Can I deactivate or even delete WP Control plugin in after having set a cron job, so I don’t have too many plugins running and slow down the website?
WPBeginner Support
Yes, as long as you’ve used one of the default schedules (such as daily). If you’ve added a custom schedule any event that uses it will run once more but won’t repeat after that.
The plugin should not cause a slowdown of your site, for a better understanding of how WordPress plugins affect your site you may want to take a look at our article here:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Administrador
Andre Hesdahl
I am a newbee with WordPress and don’t know where to put (or how to execute) the code:
add_action( ‘wpb_custom_cron’, ‘wpb_custom_cron_func’ );
function wpb_custom_cron_func() {
wp_mail( ‘you@example.com’, ‘Automatic email’, ‘Automatic scheduled email from WordPress to test cron’);
}
Jeff
Thanks for the article. Interesting to see the number of plugins that have cron jobs running often. Great peak under the hood plugin…
David
How can i configure the cron to every half hour?
hazel beaver
When I check the cron schedule the dates shown in the ‘next run’ column are all in the past. Does that mean they are not running?
In the past I think I added ‘true’ in the wp config file to stop automatic wp updates from breaking my site…. could this be the cause?
Janson
Does this work in Multi-site? Can one control crons for all instances in a multisite scenario?
Oleg
Great article, but no need for
if ( ! wp_next_scheduled( ‘wpb_custom_cron’ ) ) {
wp_schedule_event( time(), ‘hourly’, ‘my_task_hook’ );
}
this part is done in the plugin,
beny salim
how can i add Recurrence like five minutes, ten minutes
Ahmad Sayeed
I tested you given example. It works like a superman. But please give us an example to send parameter. I have added the function while creating the even. But I don’t know how to use them on PHP function.
Please give us an example
Sunny
My website is coming up with a long wp cron string after my URL and I cant get rid of it. Any thoughts?
?doing_wp_cron=1499261576.8675799369812011718750 comes up after my url and its making me look really spammy. Your insight would be appreciated.
Aniket Ashtikar
Is that ‘my_task_hook’ cron hook rightly mentioned there at line 2 or should that rather be changed to ‘wpb_custom_cron’?
Matt
Do you know if its possible to visit a link in the wp-admin area? I have a plugin that adds admin features to my wordpress site but I really want this scheduled to happen every 24 hours. I have the link but obviously am required to be logged in.
Pam M
Do you need that first if statement shown in the sample code? It looks like it would override the ability to schedule and unschedule in the WP Crontrol plugin.
Your example worked nicely when I scheduled the job in the plugin and tested it with the Run Now option. I’ll see if I get an email at the scheduled time too.
Thanks for the helpful background info.
Nigam
Hi
When I am going to refresh the page of WP-Cron Events from wordpress admin then only run the event.