Recientemente, uno de nuestros lectores preguntó si era posible ver y controlar el sistema de trabajos cron de WordPress en el panel de control. En nuestra experiencia, esta es una pregunta que muchos usuarios de WordPress tienen, especialmente a medida que se familiarizan más con el funcionamiento interno de WordPress.
Si no estás 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 verificar actualizaciones, publicar entradas programadas, etc.
En este artículo, te mostraremos cómo ver y controlar los trabajos cron de WordPress.

¿Qué es WordPress Cron? ¿Cómo funciona?
Cron es un término técnico que se utiliza para los comandos que se ejecutan en un horario programado 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, verificar actualizaciones, eliminar comentarios antiguos de la papelera, publicar entradas programadas, y así sucesivamente.
Los plugins de WordPress también pueden usarlo para realizar tareas especificadas por ti. Por ejemplo, tu plugin de copia de seguridad de WordPress puede usar el cron de WordPress para crear copias de seguridad automáticamente en un horario determinado.
Sin embargo, el uso irresponsable de cron de WordPress por parte de los plugins puede ralentizar tu sitio web. Especialmente, si estás en alojamiento compartido.
Si un plugin realiza tareas intensivas en recursos con frecuencia, entonces necesitas identificar el problema y solucionarlo.
Echemos un vistazo a 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 debes 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.
Tras la activación, debes visitar la página Herramientas » Eventos Cron para controlar la configuración de cron.

Verás una lista de todos los eventos cron programados para ejecutarse en tu sitio utilizando el sistema cron de WordPress.
En la primera columna, verás el nombre del hook que ejecuta el cron.
Los nombres de los hooks suelen darte una pista de lo que hace este evento en particular.
La mayoría de los hooks predeterminados de WordPress comienzan con el prefijo wp_, como wp_update_plugins, wp_update_themes, etc.
Tus plugins de WordPress pueden o no usar sus propios prefijos para sus hooks. Por ejemplo, All in One SEO usa el prefijo aioseo_.
También podrás ver cuándo se ejecutará el próximo cron y el intervalo de tiempo entre las próximas ejecuciones.
La última columna de la lista te permite editar, eliminar o ejecutar un evento cron.
Importante: Tenga mucho cuidado con lo que hace con los eventos cron y nunca elimine un evento cron predeterminado de WordPress.
Ahora, supongamos que ve un evento cron creado por un plugin de WordPress que consume muchos recursos.
Primero, debe verificar la configuración del plugin para ver si hay una opción para controlarlo desde allí. Si no la hay, puede hacer clic en el enlace 'Editar' junto al evento cron para cambiarlo.

Hacer clic en el botón Editar 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 evento cron' para guardar su configuración.
Agregar sus propios eventos cron en WordPress
El plugin WP Crontrol facilita agregar sus propios trabajos cron a WordPress. Simplemente visite la página Herramientas » Eventos Cron y desplácese hacia abajo hasta la pestaña 'Agregar evento cron'.

Primero, necesitas proporcionar un nombre de gancho para tu evento cron. Los nombres de gancho no pueden tener espacios ni caracteres especiales.
Si la función que deseas ejecutar requiere argumentos, puedes proporcionarlos.
A continuación, debes indicarle a WordPress cuándo ejecutar el cron la próxima vez. Puedes ingresar 'now' (ahora), que activará el cron inmediatamente, 'tomorrow' (mañana), '+2 days' (dentro de 2 días), o '25-02-2020 12:34:00'.
Por último, necesitas seleccionar una programación. Puedes elegir cada hora, dos veces al día, diario o una vez a la semana. También puedes hacer que sea un evento que no se repite.
Una vez que hayas terminado, haz clic en el botón 'Agregar evento cron' para guardar tus cambios.
Notarás que tu evento cron ahora aparecerá en la lista de eventos.
Sin embargo, actualmente no hace nada porque no le has dicho a WordPress qué hacer cuando se activa este evento.
Necesitarás agregar 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 olvides usar tu 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 puedes desplazarte hacia arriba en la página y hacer clic en el enlace 'Ejecutar ahora' junto a tu evento cron para probarlo.
Nota: Usar cron requiere habilidades de programación y desarrollo de WordPress de nivel intermedio. Si no tienes estas habilidades, te recomendamos contratar a un desarrollador de WordPress.
Eso es todo, esperamos que este artículo te haya ayudado a aprender cómo ver y controlar las tareas cron de WordPress. También te puede interesar nuestra guía sobre cómo instalar en masa tus plugins favoritos de WordPress o nuestras selecciones expertas de los mejores plugins de seguridad de WordPress.
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.


Mrteesurez
Muchas gracias por presentar este tema y ayudarnos a comprender mejor las tareas cron de WordPress. Tu explicación detallada aclaró realmente cómo funcionan y cómo administrarlas eficazmente. Agradezco las ideas que has compartido; es empoderador tener este conocimiento para mantener nuestros sitios funcionando sin problemas. ¡Gracias de nuevo por tu valioso artículo!
Paul Barrett
Ejecutamos cron a nivel de servidor porque wp-cron sobrecarga el servidor. No hay nada en nuestro sitio que sea tan crítico en cuanto al tiempo como para que los trabajos necesiten ejecutarse con frecuencia. Si establecemos la frecuencia a diario, ¿tendría WordPress algún problema?
Soporte de WPBeginner
Dependería en gran medida de lo que se esté haciendo en el sitio y cuándo. No tenemos una recomendación específica para lo que se puede posponer hasta ese punto.
Administrador
Matt K
Cuando voy a cambiar la recurrencia en los Hooks, simplemente se cambian de nuevo. Algo no está bien. ¿Necesito deshabilitar los cron de WP en wp-config.php primero?
Soporte de WPBeginner
Dependería del trabajo cron específico, si te pones en contacto con el soporte del plugin, deberían poder ayudarte.
Administrador
Heinz
¿Puedo desactivar o incluso eliminar el plugin WP Control después de haber configurado un trabajo cron, para no tener demasiados plugins ejecutándose y ralentizar el sitio web?
Soporte de WPBeginner
Sí, siempre y cuando hayas utilizado uno de los horarios predeterminados (como el diario). Si has agregado un horario personalizado, cualquier evento que lo utilice se ejecutará una vez más pero no se repetirá después de eso.
El plugin no debería causar una ralentización de tu sitio. Para una mejor comprensión de cómo los plugins de WordPress afectan tu sitio, te recomendamos leer nuestro artículo aquí:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Administrador
Andre Hesdahl
Soy un novato en WordPress y no sé dónde poner (o cómo ejecutar) el código:
add_action( ‘wpb_custom_cron’, ‘wpb_custom_cron_func’ );
function wpb_custom_cron_func() { wp_mail( ‘you@example.com’, ‘Correo automático’, ‘Correo automático programado desde WordPress para probar el cron’); }
Jeff
Gracias por el artículo. Interesante ver la cantidad de plugins que tienen trabajos cron ejecutándose a menudo. Gran vistazo al interior del plugin…
David
¿Cómo puedo configurar el cron para cada media hora?
hazel beaver
Cuando reviso el cronograma, las fechas que se muestran en la columna 'próxima ejecución' están todas en el pasado. ¿Significa eso que no se están ejecutando?
En el pasado, creo que agregué 'true' en el archivo wp config para detener las actualizaciones automáticas de wp que rompían mi sitio… ¿podría ser esta la causa?
Janson
¿Esto funciona en Multi-site? ¿Se pueden controlar los crons para todas las instancias en un escenario multisitio?
Oleg
Gran artículo, pero no hay necesidad de
if ( ! wp_next_scheduled( ‘wpb_custom_cron’ ) ) { wp_schedule_event( time(), ‘hourly’, ‘my_task_hook’ ); }
esta parte se hace en el plugin,
beny salim
¿cómo puedo agregar recurrencia como cada cinco minutos, diez minutos?
Ahmad Sayeed
Probé tu ejemplo. Funciona como un superhéroe. Pero por favor, danos un ejemplo para enviar parámetros. Agregué la función al crear el evento. Pero no sé cómo usarlos en la función PHP.
Por favor, danos un ejemplo
Sunny
Mi sitio web muestra una cadena larga de wp cron después de mi URL y no puedo deshacerme de ella. ¿Alguna idea?
?doing_wp_cron=1499261576.8675799369812011718750 aparece después de mi URL y me hace parecer muy spam. Agradecería tu opinión.
Aniket Ashtikar
¿Está ese hook cron 'my_task_hook' mencionado correctamente en la línea 2 o debería cambiarse a 'wpb_custom_cron'?
Matt
¿Sabes si es posible visitar un enlace en el área de wp-admin? Tengo un plugin que agrega funciones de administración a mi sitio de WordPress, pero realmente quiero que esto se programe para que ocurra cada 24 horas. Tengo el enlace, pero obviamente se requiere que esté conectado.
Pam M
¿Necesitas esa primera sentencia if que se muestra en el código de ejemplo? Parece que anularía la capacidad de programar y desprogramar en el plugin WP Crontrol.
Tu ejemplo funcionó muy bien cuando programé el trabajo en el plugin y lo probé con la opción Ejecutar ahora. Veré si recibo un correo electrónico a la hora programada también.
Gracias por la útil información de fondo.
Nigam
Hola
Cuando actualizo la página de Eventos de WP-Cron desde el administrador de WordPress, solo se ejecuta el evento.