¿Cuándo se ejecuta wp-cron.php en WordPress?

4 minutos de lectura

avatar de usuario
softsdev

Necesito detalles sobre wp-cron. solía wp_schedule_event
para el envío automático de correos electrónicos.

Pero wp_schedule_event solo se activa cuando un usuario visita nuestro sitio. ¿Cómo hacer que el cron se ejecute automáticamente?

avatar de usuario
Igor Parra

Se ejecutará en la primera visita justo después de la hora programada.
1.- Sí, se ejecuta automáticamente, pero lo activa un visitante.
2.- Basta con enviar correo electrónico de forma programada.


Para un comportamiento cron real, puede ejecutar un script usando crontab

crontab -e
wget -q http://domain.com/wp-content/some-path/your-script.php

-q: silencioso (sin salida). Simplemente ejecute el script. De lo contrario, tendrá muchos archivos en su servidor (wget pull files)

Consejo: http://www.thegeekstuff.com/2011/07/php-cron-job/


Usando cpanel: http://wiki.hostbillapp.com/index.php?title=Configuración:_cPanel:_Cron_job

ingrese la descripción de la imagen aquí

  • ¿Es posible que esto se active automáticamente a la hora programada? no depende del visitante

    – softsdev

    15/10/2012 a las 14:22

  • Sí, mira mi respuesta actualizada. ¡Lo he hecho muchas veces para raspar trabajos!

    – Ígor Parra

    15 de octubre de 2012 a las 14:28

  • ¿Puede decirme dónde debo ejecutar/escribir este script?

    – softsdev

    15/10/2012 a las 14:39

  • Donde quieras en tu web pública. Es igual a cualquier otro archivo php http://domain.com/wp-content/some-path/your-script.php

    – Ígor Parra

    15/10/2012 a las 14:42

  • Ya programé un evento usando Cpanel Cron. Estoy comprobando si está allí para usar directamente el código. De hecho, creo un complemento en wordpress, por lo que este complemento se puede usar en un sitio diferente, por eso estoy buscando una solución para eso.

    – softsdev

    15/10/2012 a las 15:07


avatar de usuario
s_ha_dum

wp_cron lo hace no ejecutar todo el tiempo en segundo plano de la forma en que su nombre podría sugerir. Ese tipo de programación no es posible para una aplicación web como WordPress, ya que el script de WordPress solo se ejecuta cuando alguien está viendo el sitio y no se ejecuta cuando nadie está mirando. En cambio, lo que sucede es que cuando se inicia el script de WordPress, se verifican los valores de cron y, si uno (vencido) vence, se ejecuta. Puede que se retrase unos minutos o unas horas, pero así es como funciona. The wp_cron los trabajos se ejecutan en la primera oportunidad, básicamente.

Si desea ejecutar un script cuando alguien visita el sitio, en realidad no desea wp_cron en absoluto. wp_cron no se activa cuando alguien visita. Es un temporizador difuso. Para correr cuando alguien te visita, tendrás que pensarlo bien. Podría poner una función en functions.php de su tema, pero se ejecutaría en cada carga de página, no solo en la primera carga de la visita. Podrías engancharte a wp_login y ejecute su función cuando alguien inicie sesión. Primero tendrá que decidir qué cuenta como una ‘visita’.

  • Quiero que mi script funcione como el trabajo de Cron en el servidor usando el código, ¿es posible?

    – softsdev

    15/10/2012 a las 14:27

  • Así es exactamente como dije No funciona y la naturaleza del protocolo HTTP y de una aplicación basada en PHP lo hace casi imposible. Necesitas algo como real * nix cron para hacer eso. Lo siento. Esa es la respuesta. Ojalá fuera más lo que tú querías.

    – s_ha_dum

    15/10/2012 a las 14:44

Parece que todos acaban de responder la forma en que se debe configurar un cron * nix. Donde la respuesta real debería ser específica de wordpress. Hay una configuración que se puede hacer en wp-config.php

define('DISABLE_WP_CRON', 'true');

Ahora, si puede configurar el cron * nix como respondió Igor Parra, los trabajos cron en segundo plano y compensados ​​​​no se ejecutarán más, mientras que el tiempo establecido en el panel de control o crontab estará en efecto.

  • Tampoco responde la pregunta ya que el OP quiere saber cuándo se ejecuta, no cómo deshabilitarlo en WordPress.

    – Alejandro Holsgrove

    3 oct 2016 a las 13:39

También debe configurar el cron después de escribir la funcionalidad en el archivo.

Referirse : http://wp.tutsplus.com/articles/insights-into-wp-cron-an-introduction-to-scheduling-tasks-in-wordpress/

Siempre es preferible lo real, pero se puede hacer en WordPress (PHP puro):

http://pippinsplugins.com/improved-cron-plugin-review/

¿Ha sido útil esta solución?