wp-cron.php desactivar

Para un blogger el fichero wp-cron.php puede ser su dolor de cabeza en WordPress cuando el sitio web alcanza a tener un elevado tráfico, ya que este empieza ejecutarse a intervalos irregulares cada vez que se cargan las páginas, consumiendo muchos recursos del CPU del servidor ocasionando que aparezca el error 500 o que nos suspendan la cuenta de hosting.

Para evitar problemas con el wp-cron.php cuando nuestra web está basada en WordPress lo mejor es desactivarlo desde el momento en que empezamos a publicar contenido.

Este artículo supone que ya está familiarizado con la funcionalidad básica de WordPress y con la edición de ficheros en su hosting.

Desactivando wp-cron.php de WordPress

Dicho lo anterior, accedemos al cPanel y ubicamos la categoría ARCHIVOS, luego hacemos clic en la opción Administrador de archivos.

cPanel administrador archivos


Ubicamos la carpeta raíz donde esta la instalación de nuestro sitio web WordPress, buscamos el fichero wp-config.php y hacemos clic en el para editarlo con el editor del hosting. (O puedes descargarlo para editarlo con tu editor de texto preferido, y subir el archivo para reemplazar el que esta en la carpeta de destino con el archivo que esta copiando).

editar wp-config.php


Para desactivar wp-cron.php solo basta con colocar la siguiente linea de código en el wp-config.php:

/** Desactivar fichero wp-cron.php */

define('DISABLE_WP_CRON', true);

Después de la línea  ***define(‘DB_COLLATE’, »)

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

/** Desactivar fichero wp-cron.php */

define('DISABLE_WP_CRON', true);


/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!

Guardamos los cambios y listo ya esta desactivado.

Activando cron-jobs desde cPanel

Una vez que esta desactivado el wp-cron.php desde el fichero wp-config.php. Lo siguiente es programar el cron desde el cPanel de tu hosting para que se ejecute en un lapso prudente de tiempo.

Dado que, sino lo hacemos básicamente nuestro WordPress dejara de:

  • Buscar automáticamente nuevas actualizaciones de Plugins y Plantillas instaladas.
  • Publicar entradas que hayas programado.
  • Lanzar el proceso de copia de seguridad automática en caso de tener algún plugins que lo haga, entre otros.

Puesto que esas son una de las principales tareas que realiza el fichero wp-cron.php.

Prosiguiendo, ubicamos la categoría AVANZADA en el cPanel y hacemos clic en Trabajos de cron. (Si el idioma del cPanel no está configurado en español puedes identificar la opción de cron por la imagen del calendario).

trabajos de cron cPanel

Nos abre el apartado Añadir nuevo trabajo de cron. Y como puedes ver hay varias opciones de configuración para que las tareas se ejecuten por ejemplo; cada x-minutos, cada x-hora, cada x-día, x-semana o mes.

añadir nuevo trabajo de cron

Existen dos maneras de ejecutar la función cron en la web:
1- Mediante script.
2- Comando de petición directa.

En los siguientes ejemplos la configuración sera para que se ejecute al inicio de cada hora, todos los días.

Añadiendo un cron mediante comando script

El formato de trabajo cron PHP general es el siguiente:

[Ruta al entorno] [Ruta al script] [Parámetro del script]

/usr/local/bin/php /home/usuario/public_html/wp-cron.php >/dev/null 2>&1

Recuerda reemplazar «usuario» por el verdadero nombre de usuario en tu hosting.

Haciendo clic en configuración común puedes eligir la opción que se ajuste a tu web y los parámetros cambiaran automáticamente en los campos (Minutos, Hora, Día, Mes, Día de la semana) o realizar la configuración manual campo por campo. La configuración de la imagen como mencione anteriormente es: una vez por hora(0 * * * *)

añadir nuevo trabajo de cron script

Ya establecido el intervalo de tiempo de ejecución y agregado el comando de script, se procede a hacer clic en «Añadir nuevo trabajo de cron» y este se mostrara en «Trabajos de cron actuales«.

Añadiendo un cron mediante petición directa

La petición directa consiste en utilizar el comando Wget seguido de nuestra URL más el comando a ejecutar.

El comando a implementar es:

wget -q -O – -t 1 http://tusitio.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Donde:

  • -q: Significa “quiet”, el proceso ocurre “tranquilo” o en segundo plano.
  • -O –: Registra toda la salida en (Standard Output) la cual es redirigida a /dev/null
  • -t 1: Estableciendo –t 1 le decimos a Wget que intente solo una vez la operación, y si no la puede realizar que emita el error correspondiente. Por defecto al ejecutar el comando Wget si se produce un error en la operación este la repetirá 20 veces. Al establecer -t 1 eliminamos los 19 posibles intentos lo que a su vez estamos eliminando carga del CPU.
añadir nuevo trabajo de cron peticion directa wget

Cada vez que se ejecuta un comando cron que genera salida este envía un email a la dirección de correo electrónico definida en el sistema por el usuario.

En ambos ejemplos, “>/dev/null 2>&1” es utilizado para que no se envíe un correo electrónico para un trabajo de cron individual que genere salida.

Conclusión

Para comprobar que cualquiera de las maneras elegidas para añadir trabajos cron funciona correctamente, programa una entrada esta deberá ejecutarse sin problema.

Lo recomendable es programar cron para que se ejecute cada 15 ó 30 minutos o al principio de cada hora.

Nunca programar un cron para que se ejecute cada 5 minutos, ya que la idea es tratar de consumir menos recursos del hosting.

Además, no creo que tengas que ejecutar tareas cada 5 minutos, pero ya esto depende de las necesidades de tu web.

Similar Post