¿Tiene problemas con las acciones programadas que no funcionan en WordPress?
WordPress tiene un sistema de programación llamado wp-cron, pero a veces falla en tareas programadas como la publicación de entradas, el envío de correos electrónicos, etc. Los cron jobs ejecutados por el sistema operativo de tu servidor suelen ser más fiables.
En este artículo, le mostraremos cómo desactivar fácilmente wp-cron en WordPress y le explicaremos dos formas de establecer cron jobs adecuados.
¿Por qué desactivar wp-cron?
Su sitio web WordPress tiene un sistema de programación integrado llamado wp-cron. Realiza tareas sensibles al tiempo como comprobar actualizaciones, publicar entradas programadas, crear automáticamente copias de seguridad periódicas, enviar correos electrónicos activados, etc.
Puede obtener más información en nuestra guía sobre cómo ver y controlar las tareas cron de WordPress.
El problema es que a WordPress solo se le indica que compruebe los trabajos programados cuando alguien visita su sitio web. Esto funciona bastante bien para la mayoría de los sitios, pero a veces puede causar problemas en los más pequeños.
Por ejemplo, si su sitio tiene poco tráfico, es posible que las entradas programadas no se publiquen a tiempo. Si su sitio web tiene mucho tráfico, entonces wp-cron se marcará / comprobará con frecuencia, lo que puede afectar al rendimiento de su sitio web.
Ahora, si sólo quieres corregir el error de entradas programadas que faltan, entonces puedes usar el plugin gratuito Missed Scheduled Publisher. Pero si desea resolver todos los problemas de acción programada, entonces usted necesita un trabajo cron real.
Un cron job real es ejecutado por el sistema operativo de su servidor de alojamiento web, no por WordPress. Puede establecerlo para comprobar las tareas programadas de forma más fiable. Por defecto, WordPress no tiene acceso para establecer esto a nivel de servidor, pero puedes hacerlo fácilmente siguiendo nuestro tutorial.
Dicho esto, vamos a echar un vistazo a cómo desactivar fácilmente wp-cron y establecer un trabajo cron adecuado. Esto es lo que vamos a cubrir en este tutorial:
Desactivar wp-cron en WordPress
Para desactivar wp-cron, tienes que editar wp-config.php, que es un archivo de configuración del núcleo de WordPress. Se encuentra en la carpeta raíz de su sitio de WordPress, y tendrá que utilizar un cliente FTP o el gestor de archivos de su panel de control de alojamiento web.
Este archivo contiene una gran cantidad de información sensible, y hacer los cambios equivocados puede romper su sitio de WordPress. Recomendamos hacer primero una copia de seguridad del archivo, por si acaso. Puedes aprender cómo siguiendo nuestra guía sobre cómo editar wp-config.php en WordPress.
Tendrás que pegar el siguiente código en el archivo wp-config.php justo antes de la línea que dice ‘Eso es todo, ¡deja de editar! Feliz blog”:
define('DISABLE_WP_CRON', true);
Este es el aspecto que debería tener.
Después, guarda el archivo y vuelve a subirlo a tu sitio web.
WordPress ya no activará wp-cron cuando alguien visite su sitio web.
Método 1: Establecer un Cron Job adecuado en su alojamiento WordPress
Ahora, tendrá que establecer un cron job adecuado para ejecutar sus tareas programadas. La forma de hacerlo variará en función de las herramientas que te proporcione tu proveedor de alojamiento de WordPress.
La forma más fácil de establecer cron jobs es usando cPanel, un popular panel de control de sitios web incluido en muchos planes de alojamiento web, incluyendo Bluehost. Usaremos el cPanel de Bluehost en este tutorial.
Nota: Algunos alojamientos web no utilizan cPanel, y es posible que algunos ni siquiera le permitan crear cron jobs. En caso de duda, póngase en contacto con su proveedor de alojamiento o consulte su documentación de soporte. Siempre puede utilizar un servicio cron de terceros (marque / compruebe el método 2).
Una vez que acceda a su cuenta de alojamiento y se dirija a la página “Sitios web”, cambie a la pestaña “Avanzado” de la parte superior.
Aquí, desplácese hasta la sección “Cron Jobs” y haga clic en el botón “Gestionar” situado a su lado. Ten en cuenta que la posición de esta sección puede variar dependiendo de tu proveedor de alojamiento.
Esto le llevará a una nueva página donde podrá crear nuevos cron jobs.
No te preocupes por la advertencia que verás acerca de necesitar un buen conocimiento de los comandos de Linux. Solo es necesario un comando, y te mostraremos exactamente cuál es a continuación.
Si lo necesita, puede cambiar la dirección de correo electrónico a la que se enviarán los avisos de las tareas del cron. La dirección por defecto es la que utilizó cuando se registró para su alojamiento web, y esto funcionará bien en la mayoría de los sitios web.
Ahora, vamos a desplazarnos hacia abajo hasta la sección ‘Add New Cron Job’ y establecer un cron job.
En primer lugar, debe decidir con qué frecuencia se ejecutará la tarea cron. Puede ser la que quieras, pero recomendamos intervalos de 30 minutos.
Tendrá que hacer clic en el botón ‘Ajustes comunes’ y seleccionar un intervalo de tiempo en el desplegable.’ Dos veces por hora’ es una buena opción para la mayoría de los sitios si no está seguro.
Ahora, puede introducir el comando que pedirá a WordPress que ejecute sus tareas programadas. Debe pegar el siguiente código en el campo ‘Comando’:
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Sustituye “ejemplo.com” por la URL de tu sitio web.
Una vez hecho esto, haga clic en el botón “Añadir nuevo cron job”, y verá el nuevo cron job añadido a la lista de abajo.
WordPress ahora marcará / comprobará y ejecutará las tareas programadas cada 30 minutos en lugar de cuando alguien visite su sitio web.
Método 2: Establecer un Cron Job adecuado utilizando un servicio de terceros
Si su plan de alojamiento no ofrece cron jobs adecuados, o son difíciles de establecer, puede utilizar un servicio cron de terceros.
Se trata de servicios dedicados que permiten establecer cron jobs mediante una interfaz sencilla. He aquí algunos de los mejores:
- EasyCron tiene un plan gratuito que requiere renovación mensual
- cron-job.org es un servicio gratuito
- Cronitor es gratuito si sólo necesitas un cron job
- SetCronJob ofrece planes de pago a partir de 10 $/año
Para este tutorial, vamos a utilizar EasyCron porque es fácil de usar, y el plan gratuito es adecuado para la mayoría de los casos de uso para principiantes.
Una vez que hayas creado una cuenta gratuita, puedes crear una nueva tarea cron haciendo clic en el botón “+ tarea cron” de la izquierda.
Aparecerá la pantalla “Crear Cron Job”. En primer lugar, tienes que pegar la siguiente URL en el campo ‘URL a llamar’:
https://example.com/wp-cron.php?doing_wp_cron
Asegúrese de sustituir “ejemplo.com” por la URL de su propio sitio.
A continuación, selecciona “Cada 30 minutos” en el menú desplegable “Cuándo ejecutar”. Cuando hayas terminado, no olvides hacer clic en el botón “Crear Cron Job” para almacenar los ajustes.
La nueva tarea cron se añadirá a la lista y ejecutará wp-cron en su sitio web cada 30 minutos.
Bonus: Programa automáticamente las entradas de tu blog en WordPress
Una vez que haya establecido las tareas cron adecuadas, todas sus tareas programadas en el blog de WordPress se llevarán a cabo sin problemas. Incluso puedes programar automáticamente las entradas de tu blog.
Esto le permitirá elegir un artículo para publicarlo aleatoriamente en la fecha de publicación preseleccionada. Para ello, debe instalar y activar el plugin PublishPress Planner.
Una vez activado, visite la página Planificador ” Ajustes y cambie a la pestaña ‘Calendario de contenidos’ de la parte superior. Aquí, marque / compruebe la casilla “Programado” junto a la opción “Estados para mostrar la hora de publicación”.
A continuación, debe elegir un formato de hora para la publicación de su entrada y hacer clic en el campo situado junto a la opción “Hora de publicación por defecto para entradas creadas en el calendario”.
Se abrirá una indicación desde la que podrás elegir la hora, el momento y el minuto específicos en los que se publicarán las entradas programadas a diario. Para obtener ideas, puedes ver nuestro tutorial sobre cuándo es el mejor momento para publicar un blog.
A continuación, haz clic en el botón “Guardar cambios” para establecer los ajustes.
Ahora puede dirigirse al editor de bloques, donde podrá seleccionar la opción “Programado” en el menú desplegable “Estado de la entrada”.
Para obtener más información, consulte nuestra guía práctica sobre cómo programar automáticamente las entradas de su blog de WordPress.
Esperamos que este tutorial te haya ayudado a aprender a desactivar wp-cron en WordPress y a establecer los cron jobs adecuados. Puede que también quieras ver nuestra guía paso a paso para WordPress SEO o comprobar nuestra lista de errores comunes de WordPress y cómo corregirlos.
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.
Beth Alexander
Is there a way to check that the new corn job running from Control Panel is working?
WPBeginner Support
To check a cron job, we would recommend taking a look at our article below!
https://www.wpbeginner.com/plugins/how-to-view-and-control-wordpress-cron-jobs/
Administrador
Anita Richards
I am confused.
Woocommerce recommends setting the command as without the “?doing_wp_cron” part.
What is the difference?
WPBeginner Support
Unless we hear otherwise, the ?doing_wp_cron allows for some background processing that without would not be able to do.
Administrador
Anita Richards
Ok, that makes some sense. I guess that it must be the difference between the WP and Woo processes being run?
I ended up creating two corn jobs in cPanel one with and one without. Is that going to cause problems?
WPBeginner Support
It should be a slightly different method to achieve the same result.
It would depend on your site’s size for how multiple cron jobs would affect your hosting site, as your site becomes larger it may become an issue